@blockend/widget 1.0.30 → 1.0.32

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 (280) hide show
  1. package/dist/AllRoutes-CPwuTwqd.js +2209 -0
  2. package/dist/Box-CIChapvH.js +55 -0
  3. package/dist/EstGas-CEFILtyf.js +12867 -0
  4. package/dist/Grow-DJZj9zjv.js +1656 -0
  5. package/dist/InputComp-DqF1JGIu.js +106 -0
  6. package/dist/LoadRoute-r3sHTYXM.js +126 -0
  7. package/dist/QuotesProgress-BXVLxZ8U.js +28 -0
  8. package/dist/SwapAsset-07WvVwl-.js +64 -0
  9. package/dist/Tooltip-CNAsCF8n.js +572 -0
  10. package/dist/TxnButton-D2TTkFYA.js +207 -0
  11. package/dist/WidgetForm.module-QHJ0-m5f.js +9 -0
  12. package/dist/{add-BDjkKnDN.js → add-t2GqC9VA.js} +3 -4
  13. package/dist/{all-wallets-CrBep7Gl.js → all-wallets-DFyf0q31.js} +3 -4
  14. package/dist/{app-store-CwaPvoXY.js → app-store-aAahwmBP.js} +3 -4
  15. package/dist/{apple-BA8mnYrP.js → apple-DeRgpwlc.js} +3 -4
  16. package/dist/{arrow-bottom-BXdMFUAl.js → arrow-bottom-DdEOkaAj.js} +3 -4
  17. package/dist/{arrow-bottom-circle-DFT4mXIU.js → arrow-bottom-circle-BWwREWcv.js} +3 -4
  18. package/dist/{arrow-left-BzkeYnqg.js → arrow-left-CulyLmoH.js} +3 -4
  19. package/dist/{arrow-right-DiUAWQjY.js → arrow-right-Dwr7TISn.js} +3 -4
  20. package/dist/{arrow-top-86AMrjF7.js → arrow-top-pL4rM_y8.js} +3 -4
  21. package/dist/{bank-DN5JAJkK.js → bank-CPuyK_08.js} +3 -4
  22. package/dist/basic-CVc9xEvb.js +5783 -0
  23. package/dist/{browser-CIEc-DNj.js → browser-Cbq2Zbp4.js} +3 -4
  24. package/dist/{card-D0J873mK.js → card-B_hUtPWK.js} +3 -4
  25. package/dist/ccip-BLVGcR4A.js +228 -0
  26. package/dist/{checkmark-mvlF9aX8.js → checkmark-WEqTsFAc.js} +3 -4
  27. package/dist/{checkmark-bold-Cvmc9tJb.js → checkmark-bold-Du_ZvhqM.js} +3 -4
  28. package/dist/{chevron-bottom-CWsU0Wj4.js → chevron-bottom-C-s-lv4L.js} +3 -4
  29. package/dist/{chevron-left-DZoyyvkH.js → chevron-left-C7NcRElx.js} +3 -4
  30. package/dist/{chevron-right-Db1S8IpK.js → chevron-right-CSzmAmdn.js} +3 -4
  31. package/dist/{chevron-top-BG2-jrhN.js → chevron-top-Dd99Wfel.js} +3 -4
  32. package/dist/{chrome-store-bZ30Z8RD.js → chrome-store-C4p77Of0.js} +3 -4
  33. package/dist/{clock-BQCJkpsN.js → clock-Cib24qjH.js} +3 -4
  34. package/dist/clockIcon-C2W5xvyt.js +76 -0
  35. package/dist/{close-0442yxHv.js → close-BXjEkTvS.js} +3 -4
  36. package/dist/{coinPlaceholder-npHsRGpi.js → coinPlaceholder-BFNC7cQN.js} +3 -4
  37. package/dist/{compass-CA-2HVOX.js → compass-CXPX5Ycp.js} +3 -4
  38. package/dist/{copy-DZVC8Hxi.js → copy-BEawMbmF.js} +3 -4
  39. package/dist/core-Bez9Ow7F.js +14967 -0
  40. package/dist/cursor-Cxq4Q9jk.js +7 -0
  41. package/dist/{cursor-transparent-wVQvgZAK.js → cursor-transparent-ZjJ0P2vr.js} +3 -4
  42. package/dist/{desktop-DTAJIXTO.js → desktop-BhZVovAp.js} +3 -4
  43. package/dist/{disconnect-D8Si5N8S.js → disconnect-AC-bffZO.js} +3 -4
  44. package/dist/{discord-tQYw47cV.js → discord-dT97h-CC.js} +3 -4
  45. package/dist/down-DP56YSKp.js +606 -0
  46. package/dist/{etherscan-CjqNGBR7.js → etherscan-rYFRhRTM.js} +3 -4
  47. package/dist/ethertousd-CC_ezooz.js +6 -0
  48. package/dist/{exclamation-triangle-BhHXY1hF.js → exclamation-triangle-C-pCuC08.js} +3 -4
  49. package/dist/{extension-y15WoviO.js → extension-BnqauLSn.js} +3 -4
  50. package/dist/{external-link--gR7z0qt.js → external-link-M9D6e_F3.js} +3 -4
  51. package/dist/{facebook-DlX8IWwq.js → facebook-DHezcoD-.js} +3 -4
  52. package/dist/{farcaster-CFzTYTRj.js → farcaster-D0Ky-Imv.js} +3 -4
  53. package/dist/{filters-BO_y5jSy.js → filters-B02NYLWq.js} +3 -4
  54. package/dist/getChainIds-CJd2TZYT.js +1888 -0
  55. package/dist/getCosmosAddress-DTZfw04G.js +9565 -0
  56. package/dist/{github-B9QjqzQj.js → github-BzQkIMuE.js} +3 -4
  57. package/dist/{google-D9CK21nC.js → google-BpwCJ4Fs.js} +3 -4
  58. package/dist/hamburger-BzqwkUjE.js +3915 -0
  59. package/dist/{help-circle-Qf3YDcg6.js → help-circle-C0nOySHC.js} +3 -4
  60. package/dist/{id-VtdZj5EJ.js → id-DFP_kFd4.js} +3 -4
  61. package/dist/{image-Bb6NRqAG.js → image-QiYOAGjM.js} +3 -4
  62. package/dist/index-CDq3vNnP.js +22 -0
  63. package/dist/index-CLzkn733.js +28223 -0
  64. package/dist/index-CjtwASJt.js +252 -0
  65. package/dist/index-CrC4B7xn.js +331 -0
  66. package/dist/index-D5hLIe-N.js +9 -0
  67. package/dist/index-DDk00SOL.js +159 -0
  68. package/dist/index-DTish3yr.js +1014 -0
  69. package/dist/index-DW3W7zaF.js +473 -0
  70. package/dist/index-DXdD3L9f.js +1460 -0
  71. package/dist/index-DaJ1272l.js +18613 -0
  72. package/dist/index-DxPp2gBS.js +992 -0
  73. package/dist/index-Dy_n2MPD.js +3010 -0
  74. package/dist/index-oc8HPfOF.js +13583 -0
  75. package/dist/index.es-Bsr7zP98.js +366 -0
  76. package/dist/index.es-C-j-Ghef.js +11678 -0
  77. package/dist/index.es.js +4 -5
  78. package/dist/{info-C-7imdlv.js → info-BTLQJ-wd.js} +3 -4
  79. package/dist/{info-circle-CojbxQCA.js → info-circle-Dla9169_.js} +3 -4
  80. package/dist/{lightbulb-DrfSirtI.js → lightbulb-PN8DA_Wh.js} +3 -4
  81. package/dist/{mail-yuNzffmW.js → mail-BGYZut_4.js} +3 -4
  82. package/dist/{mobile-B68qFJIJ.js → mobile-BM760ZzX.js} +3 -4
  83. package/dist/{more-B5F7-jLe.js → more-rHGnl2ck.js} +3 -4
  84. package/dist/{network-placeholder-C0IP4D1c.js → network-placeholder-CyQl-3_2.js} +3 -4
  85. package/dist/{nftPlaceholder-DUEpu8vC.js → nftPlaceholder-nuUJ8nKY.js} +3 -4
  86. package/dist/{off-kgcptPTJ.js → off-GYlwYDrT.js} +3 -4
  87. package/dist/{play-store-CpkQM7Tf.js → play-store-Ck01Ez1F.js} +3 -4
  88. package/dist/{plus-WJX5o6br.js → plus-CQfXWgLw.js} +3 -4
  89. package/dist/{qr-code-DYSpZOBK.js → qr-code-CyLVwLY7.js} +3 -4
  90. package/dist/{recycle-horizontal-nN1xwykO.js → recycle-horizontal-DvnWPcEQ.js} +3 -4
  91. package/dist/{refresh-BDlbkeKx.js → refresh-BOxj8b2n.js} +3 -4
  92. package/dist/{reown-logo--P11S5yl.js → reown-logo-D1iprOTg.js} +3 -4
  93. package/dist/{search-DBF3vwq7.js → search-DrPaZPnc.js} +3 -4
  94. package/dist/secp256k1-DgmH1qVg.js +1251 -0
  95. package/dist/{send-pvA8KHBc.js → send-ybBREe4b.js} +3 -4
  96. package/dist/shareicon-D3Qj5j1T.js +262 -0
  97. package/dist/{sortDown-cDA6MpOw.js → sortDown-CjBaDQTU.js} +13 -14
  98. package/dist/{swapHorizontal-BI2PzZwN.js → swapHorizontal-BddjZdXK.js} +3 -4
  99. package/dist/{swapHorizontalBold-CWlwK-F6.js → swapHorizontalBold-B6AWjPZ9.js} +3 -4
  100. package/dist/{swapHorizontalMedium-BmLVJu35.js → swapHorizontalMedium-CNacWoBn.js} +3 -4
  101. package/dist/{swapHorizontalRoundedBold-Bu7b_4Tq.js → swapHorizontalRoundedBold-B8VcPnqt.js} +3 -4
  102. package/dist/{swapVertical-9yVsysvS.js → swapVertical-zY2BbSyQ.js} +3 -4
  103. package/dist/{telegram-0bWPCnom.js → telegram-DS4l-8Oc.js} +3 -4
  104. package/dist/{three-dots-V6GJeVIa.js → three-dots-RctNqamK.js} +3 -4
  105. package/dist/truncate-D9t92mVX.js +7 -0
  106. package/dist/{twitch-BnXJxO5H.js → twitch-CJ0llIIH.js} +3 -4
  107. package/dist/{twitterIcon-DKgyPicl.js → twitterIcon-pgvN9-bP.js} +3 -4
  108. package/dist/unsupportedProp-BJVuEW_b.js +10 -0
  109. package/dist/useRegisterError-C_YLA1dw.js +9857 -0
  110. package/dist/validError-CDlJpg_f.js +6 -0
  111. package/dist/{verify-6SHEYxKY.js → verify-BeZLo1Fq.js} +3 -4
  112. package/dist/{verify-filled-V7PkY7fi.js → verify-filled-meyb7E16.js} +3 -4
  113. package/dist/w3m-modal-C-Jp9NVv.js +1471 -0
  114. package/dist/{wallet-CyIBiiAv.js → wallet-CFcOgSsz.js} +3 -4
  115. package/dist/{wallet-placeholder-Dy4jQvK8.js → wallet-placeholder-CeUMILZq.js} +3 -4
  116. package/dist/{walletconnect-CL5PuqLp.js → walletconnect-D6LB1PyC.js} +7 -10
  117. package/dist/{warning-circle-BbG3KGtg.js → warning-circle-BRtzofvT.js} +3 -4
  118. package/dist/{x-BKSfqvJ-.js → x-DKQAOOh3.js} +3 -4
  119. package/package.json +1 -1
  120. package/dist/AllRoutes-N9u-0kyk.js +0 -2605
  121. package/dist/AllRoutes-N9u-0kyk.js.map +0 -1
  122. package/dist/Box-DPSoUHKG.js +0 -61
  123. package/dist/Box-DPSoUHKG.js.map +0 -1
  124. package/dist/EstGas-9QzcUupH.js +0 -17109
  125. package/dist/EstGas-9QzcUupH.js.map +0 -1
  126. package/dist/Grow-sm7uQW-H.js +0 -2213
  127. package/dist/Grow-sm7uQW-H.js.map +0 -1
  128. package/dist/InputComp-BNsmXy6D.js +0 -115
  129. package/dist/InputComp-BNsmXy6D.js.map +0 -1
  130. package/dist/LoadRoute-DFIoO0Wm.js +0 -143
  131. package/dist/LoadRoute-DFIoO0Wm.js.map +0 -1
  132. package/dist/QuotesProgress-C4vn322J.js +0 -30
  133. package/dist/QuotesProgress-C4vn322J.js.map +0 -1
  134. package/dist/SwapAsset-kKtvzzJ_.js +0 -66
  135. package/dist/SwapAsset-kKtvzzJ_.js.map +0 -1
  136. package/dist/Tooltip-c1DRaAxV.js +0 -719
  137. package/dist/Tooltip-c1DRaAxV.js.map +0 -1
  138. package/dist/TxnButton-BmcX_BPz.js +0 -303
  139. package/dist/TxnButton-BmcX_BPz.js.map +0 -1
  140. package/dist/WidgetForm.module-DhUUlwZP.js +0 -14
  141. package/dist/WidgetForm.module-DhUUlwZP.js.map +0 -1
  142. package/dist/add-BDjkKnDN.js.map +0 -1
  143. package/dist/all-wallets-CrBep7Gl.js.map +0 -1
  144. package/dist/app-store-CwaPvoXY.js.map +0 -1
  145. package/dist/apple-BA8mnYrP.js.map +0 -1
  146. package/dist/arrow-bottom-BXdMFUAl.js.map +0 -1
  147. package/dist/arrow-bottom-circle-DFT4mXIU.js.map +0 -1
  148. package/dist/arrow-left-BzkeYnqg.js.map +0 -1
  149. package/dist/arrow-right-DiUAWQjY.js.map +0 -1
  150. package/dist/arrow-top-86AMrjF7.js.map +0 -1
  151. package/dist/bank-DN5JAJkK.js.map +0 -1
  152. package/dist/basic-Bn5vs8SQ.js +0 -7110
  153. package/dist/basic-Bn5vs8SQ.js.map +0 -1
  154. package/dist/browser-CIEc-DNj.js.map +0 -1
  155. package/dist/card-D0J873mK.js.map +0 -1
  156. package/dist/ccip-DOQk8pZb.js +0 -251
  157. package/dist/ccip-DOQk8pZb.js.map +0 -1
  158. package/dist/checkmark-bold-Cvmc9tJb.js.map +0 -1
  159. package/dist/checkmark-mvlF9aX8.js.map +0 -1
  160. package/dist/chevron-bottom-CWsU0Wj4.js.map +0 -1
  161. package/dist/chevron-left-DZoyyvkH.js.map +0 -1
  162. package/dist/chevron-right-Db1S8IpK.js.map +0 -1
  163. package/dist/chevron-top-BG2-jrhN.js.map +0 -1
  164. package/dist/chrome-store-bZ30Z8RD.js.map +0 -1
  165. package/dist/clock-BQCJkpsN.js.map +0 -1
  166. package/dist/clockIcon-jSNFFrLy.js +0 -77
  167. package/dist/clockIcon-jSNFFrLy.js.map +0 -1
  168. package/dist/close-0442yxHv.js.map +0 -1
  169. package/dist/coinPlaceholder-npHsRGpi.js.map +0 -1
  170. package/dist/compass-CA-2HVOX.js.map +0 -1
  171. package/dist/copy-DZVC8Hxi.js.map +0 -1
  172. package/dist/core-h4B-syrK.js +0 -17218
  173. package/dist/core-h4B-syrK.js.map +0 -1
  174. package/dist/cursor-BmgVIdd4.js +0 -8
  175. package/dist/cursor-BmgVIdd4.js.map +0 -1
  176. package/dist/cursor-transparent-wVQvgZAK.js.map +0 -1
  177. package/dist/desktop-DTAJIXTO.js.map +0 -1
  178. package/dist/disconnect-D8Si5N8S.js.map +0 -1
  179. package/dist/discord-tQYw47cV.js.map +0 -1
  180. package/dist/down-BgR5p6bw.js +0 -810
  181. package/dist/down-BgR5p6bw.js.map +0 -1
  182. package/dist/etherscan-CjqNGBR7.js.map +0 -1
  183. package/dist/ethertousd-BOknTgU4.js +0 -8
  184. package/dist/ethertousd-BOknTgU4.js.map +0 -1
  185. package/dist/exclamation-triangle-BhHXY1hF.js.map +0 -1
  186. package/dist/extension-y15WoviO.js.map +0 -1
  187. package/dist/external-link--gR7z0qt.js.map +0 -1
  188. package/dist/facebook-DlX8IWwq.js.map +0 -1
  189. package/dist/farcaster-CFzTYTRj.js.map +0 -1
  190. package/dist/filters-BO_y5jSy.js.map +0 -1
  191. package/dist/getChainIds-BW6u6K7g.js +0 -2432
  192. package/dist/getChainIds-BW6u6K7g.js.map +0 -1
  193. package/dist/getCosmosAddress-Q91DQZPn.js +0 -13999
  194. package/dist/getCosmosAddress-Q91DQZPn.js.map +0 -1
  195. package/dist/github-B9QjqzQj.js.map +0 -1
  196. package/dist/google-D9CK21nC.js.map +0 -1
  197. package/dist/hamburger-DdXejR_U.js +0 -4563
  198. package/dist/hamburger-DdXejR_U.js.map +0 -1
  199. package/dist/help-circle-Qf3YDcg6.js.map +0 -1
  200. package/dist/id-VtdZj5EJ.js.map +0 -1
  201. package/dist/image-Bb6NRqAG.js.map +0 -1
  202. package/dist/index-A4USEaqO.js +0 -4218
  203. package/dist/index-A4USEaqO.js.map +0 -1
  204. package/dist/index-BnNGphMQ.js +0 -544
  205. package/dist/index-BnNGphMQ.js.map +0 -1
  206. package/dist/index-CLkRz935.js +0 -24385
  207. package/dist/index-CLkRz935.js.map +0 -1
  208. package/dist/index-CMYftxmy.js +0 -1884
  209. package/dist/index-CMYftxmy.js.map +0 -1
  210. package/dist/index-D0RbVaC6.js +0 -12
  211. package/dist/index-D0RbVaC6.js.map +0 -1
  212. package/dist/index-D44jBo43.js +0 -35859
  213. package/dist/index-D44jBo43.js.map +0 -1
  214. package/dist/index-DArR1lwi.js +0 -1760
  215. package/dist/index-DArR1lwi.js.map +0 -1
  216. package/dist/index-DQPPcv1z.js +0 -309
  217. package/dist/index-DQPPcv1z.js.map +0 -1
  218. package/dist/index-DYHhV8Ah.js +0 -16079
  219. package/dist/index-DYHhV8Ah.js.map +0 -1
  220. package/dist/index-Di4O_5cO.js +0 -1088
  221. package/dist/index-Di4O_5cO.js.map +0 -1
  222. package/dist/index-HAMZ-tBE.js +0 -189
  223. package/dist/index-HAMZ-tBE.js.map +0 -1
  224. package/dist/index-h0B0Ds4O.js +0 -413
  225. package/dist/index-h0B0Ds4O.js.map +0 -1
  226. package/dist/index-sLx4Edw4.js +0 -23
  227. package/dist/index-sLx4Edw4.js.map +0 -1
  228. package/dist/index.es-CoUIS9Di.js +0 -12917
  229. package/dist/index.es-CoUIS9Di.js.map +0 -1
  230. package/dist/index.es-DvgvELOO.js +0 -476
  231. package/dist/index.es-DvgvELOO.js.map +0 -1
  232. package/dist/index.es.js.map +0 -1
  233. package/dist/info-C-7imdlv.js.map +0 -1
  234. package/dist/info-circle-CojbxQCA.js.map +0 -1
  235. package/dist/lightbulb-DrfSirtI.js.map +0 -1
  236. package/dist/mail-yuNzffmW.js.map +0 -1
  237. package/dist/mobile-B68qFJIJ.js.map +0 -1
  238. package/dist/more-B5F7-jLe.js.map +0 -1
  239. package/dist/network-placeholder-C0IP4D1c.js.map +0 -1
  240. package/dist/nftPlaceholder-DUEpu8vC.js.map +0 -1
  241. package/dist/off-kgcptPTJ.js.map +0 -1
  242. package/dist/play-store-CpkQM7Tf.js.map +0 -1
  243. package/dist/plus-WJX5o6br.js.map +0 -1
  244. package/dist/qr-code-DYSpZOBK.js.map +0 -1
  245. package/dist/recycle-horizontal-nN1xwykO.js.map +0 -1
  246. package/dist/refresh-BDlbkeKx.js.map +0 -1
  247. package/dist/reown-logo--P11S5yl.js.map +0 -1
  248. package/dist/search-DBF3vwq7.js.map +0 -1
  249. package/dist/secp256k1-CBD0agkt.js +0 -1682
  250. package/dist/secp256k1-CBD0agkt.js.map +0 -1
  251. package/dist/send-pvA8KHBc.js.map +0 -1
  252. package/dist/shareicon-BdQizUDb.js +0 -315
  253. package/dist/shareicon-BdQizUDb.js.map +0 -1
  254. package/dist/sortDown-cDA6MpOw.js.map +0 -1
  255. package/dist/swapHorizontal-BI2PzZwN.js.map +0 -1
  256. package/dist/swapHorizontalBold-CWlwK-F6.js.map +0 -1
  257. package/dist/swapHorizontalMedium-BmLVJu35.js.map +0 -1
  258. package/dist/swapHorizontalRoundedBold-Bu7b_4Tq.js.map +0 -1
  259. package/dist/swapVertical-9yVsysvS.js.map +0 -1
  260. package/dist/telegram-0bWPCnom.js.map +0 -1
  261. package/dist/three-dots-V6GJeVIa.js.map +0 -1
  262. package/dist/truncate-DSxFWEga.js +0 -8
  263. package/dist/truncate-DSxFWEga.js.map +0 -1
  264. package/dist/twitch-BnXJxO5H.js.map +0 -1
  265. package/dist/twitterIcon-DKgyPicl.js.map +0 -1
  266. package/dist/unsupportedProp-DvjrBqjA.js +0 -15
  267. package/dist/unsupportedProp-DvjrBqjA.js.map +0 -1
  268. package/dist/useRegisterError-DTDRNbyK.js +0 -19289
  269. package/dist/useRegisterError-DTDRNbyK.js.map +0 -1
  270. package/dist/validError-rariWQ7G.js +0 -15
  271. package/dist/validError-rariWQ7G.js.map +0 -1
  272. package/dist/verify-6SHEYxKY.js.map +0 -1
  273. package/dist/verify-filled-V7PkY7fi.js.map +0 -1
  274. package/dist/w3m-modal-DeL22Ji8.js +0 -1722
  275. package/dist/w3m-modal-DeL22Ji8.js.map +0 -1
  276. package/dist/wallet-CyIBiiAv.js.map +0 -1
  277. package/dist/wallet-placeholder-Dy4jQvK8.js.map +0 -1
  278. package/dist/walletconnect-CL5PuqLp.js.map +0 -1
  279. package/dist/warning-circle-BbG3KGtg.js.map +0 -1
  280. package/dist/x-BKSfqvJ-.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-h4B-syrK.js","sources":["../node_modules/@reown/appkit-common/dist/esm/src/utils/ConstantsUtil.js","../node_modules/@reown/appkit-common/dist/esm/src/utils/NetworkUtil.js","../node_modules/big.js/big.mjs","../node_modules/@reown/appkit-common/dist/esm/src/utils/NumberUtil.js","../node_modules/@reown/appkit-common/dist/esm/src/contracts/erc20.js","../node_modules/@reown/appkit-common/dist/esm/src/contracts/swap.js","../node_modules/@reown/appkit-common/dist/esm/src/contracts/usdt.js","../node_modules/@reown/appkit-common/dist/esm/src/utils/ContractUtil.js","../node_modules/@reown/appkit-common/dist/esm/src/utils/ParseUtil.js","../node_modules/@reown/appkit-common/dist/esm/src/utils/SafeLocalStorage.js","../node_modules/@reown/appkit-common/dist/esm/src/utils/ThemeUtil.js","../node_modules/valtio/node_modules/proxy-compare/dist/index.modern.js","../node_modules/valtio/esm/vanilla.mjs","../node_modules/valtio/esm/vanilla/utils.mjs","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/ConstantsUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/StorageUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/CoreHelperUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/FetchUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/OptionsUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/OptionsController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/TelemetryController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/withErrorBoundary.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/MobileWallet.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/AssetController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/AssetUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/AlertController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/EventsController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/ApiController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/RouterController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/ThemeController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/ConnectorController.js","../node_modules/@reown/appkit-controllers/node_modules/@reown/appkit-wallet/dist/esm/src/W3mFrameConstants.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/SnackController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/TransactionsController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/ConnectionController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/PublicStateController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/ERC7811Util.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/SendApiUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/SendController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/ChainController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/BlockchainApiController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/AccountController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/NetworkUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/ModalController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/OnRampController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/EnsUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/EnsController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/SIWXUtil.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/node_modules/@walletconnect/types/dist/index.es.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/node_modules/@walletconnect/utils/dist/index.es.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/node_modules/@walletconnect/core/dist/index.es.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/node_modules/@walletconnect/sign-client/dist/index.es.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/node_modules/@walletconnect/universal-provider/dist/index.es.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/ConnectorControllerUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/ChainControllerUtil.js","../node_modules/@reown/appkit-utils/dist/esm/src/ConstantsUtil.js","../node_modules/@reown/appkit-utils/dist/esm/src/PresetsUtil.js","../node_modules/@reown/appkit-utils/dist/esm/src/HelpersUtil.js","../node_modules/@reown/appkit-utils/dist/esm/src/ErrorUtil.js","../node_modules/@reown/appkit-utils/dist/esm/src/LoggerUtil.js","../node_modules/@reown/appkit-utils/dist/esm/src/CaipNetworkUtil.js","../node_modules/@reown/appkit-utils/dist/esm/src/ProviderUtil.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit-scaffold-ui/dist/esm/src/utils/ConstantsUtil.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit-scaffold-ui/dist/esm/src/utils/WalletUtil.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit-scaffold-ui/dist/esm/src/utils/ConnectorUtil.js","../node_modules/lit/node_modules/@lit/reactive-element/css-tag.js","../node_modules/lit/node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit/node_modules/lit-html/lit-html.js","../node_modules/lit/node_modules/lit-element/lit-element.js","../node_modules/@reown/appkit-ui/dist/esm/src/utils/ThemeUtil.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/src/utils/ConstantsUtil.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/src/networks/utils.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/src/networks/solana/solana.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/src/networks/solana/solanaDevnet.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/src/networks/solana/solanaTestnet.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/src/networks/bitcoin.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/src/utils/HelpersUtil.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/src/connectors/WalletConnectConnector.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/src/adapters/ChainAdapterBlueprint.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/src/universal-adapter/client.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/src/utils/ConfigUtil.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/src/client/appkit-base-client.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/src/client/appkit-core.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/exports/constants.js","../node_modules/@wagmi/connectors/node_modules/@reown/appkit/dist/esm/exports/core.js"],"sourcesContent":["export const ConstantsUtil = {\n WC_NAME_SUFFIX: '.reown.id',\n WC_NAME_SUFFIX_LEGACY: '.wcn.id',\n BLOCKCHAIN_API_RPC_URL: 'https://rpc.walletconnect.org',\n PULSE_API_URL: 'https://pulse.walletconnect.org',\n W3M_API_URL: 'https://api.web3modal.org',\n CONNECTOR_ID: {\n WALLET_CONNECT: 'walletConnect',\n INJECTED: 'injected',\n WALLET_STANDARD: 'announced',\n COINBASE: 'coinbaseWallet',\n COINBASE_SDK: 'coinbaseWalletSDK',\n SAFE: 'safe',\n LEDGER: 'ledger',\n OKX: 'okx',\n EIP6963: 'eip6963',\n AUTH: 'ID_AUTH'\n },\n CONNECTOR_NAMES: {\n AUTH: 'Auth'\n },\n AUTH_CONNECTOR_SUPPORTED_CHAINS: ['eip155', 'solana'],\n LIMITS: {\n PENDING_TRANSACTIONS: 99\n },\n CHAIN: {\n EVM: 'eip155',\n SOLANA: 'solana',\n POLKADOT: 'polkadot',\n BITCOIN: 'bip122'\n },\n CHAIN_NAME_MAP: {\n eip155: 'EVM Networks',\n solana: 'Solana',\n polkadot: 'Polkadot',\n bip122: 'Bitcoin',\n cosmos: 'Cosmos'\n },\n ADAPTER_TYPES: {\n BITCOIN: 'bitcoin',\n SOLANA: 'solana',\n WAGMI: 'wagmi',\n ETHERS: 'ethers',\n ETHERS5: 'ethers5'\n },\n USDT_CONTRACT_ADDRESSES: [\n '0xdac17f958d2ee523a2206206994597c13d831ec7',\n '0xc2132d05d31c914a87c6611c10748aeb04b58e8f',\n '0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7',\n '0x919C1c267BC06a7039e03fcc2eF738525769109c',\n '0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e',\n '0x55d398326f99059fF775485246999027B3197955',\n '0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9'\n ],\n HTTP_STATUS_CODES: {\n SERVICE_UNAVAILABLE: 503,\n FORBIDDEN: 403\n },\n UNSUPPORTED_NETWORK_NAME: 'Unknown Network',\n SECURE_SITE_SDK_ORIGIN: (typeof process !== 'undefined' && typeof process.env !== 'undefined'\n ? process.env['NEXT_PUBLIC_SECURE_SITE_ORIGIN']\n : undefined) || 'https://secure.walletconnect.org'\n};\n//# sourceMappingURL=ConstantsUtil.js.map","import { ConstantsUtil } from './ConstantsUtil.js';\nexport const NetworkUtil = {\n caipNetworkIdToNumber(caipnetworkId) {\n return caipnetworkId ? Number(caipnetworkId.split(':')[1]) : undefined;\n },\n parseEvmChainId(chainId) {\n return typeof chainId === 'string'\n ? this.caipNetworkIdToNumber(chainId)\n : chainId;\n },\n getNetworksByNamespace(networks, namespace) {\n return networks?.filter(network => network.chainNamespace === namespace) || [];\n },\n getFirstNetworkByNamespace(networks, namespace) {\n return this.getNetworksByNamespace(networks, namespace)[0];\n },\n getNetworkNameByCaipNetworkId(caipNetworks, caipNetworkId) {\n if (!caipNetworkId) {\n return undefined;\n }\n const caipNetwork = caipNetworks.find(network => network.caipNetworkId === caipNetworkId);\n if (caipNetwork) {\n return caipNetwork.name;\n }\n const [namespace] = caipNetworkId.split(':');\n return ConstantsUtil.CHAIN_NAME_MAP?.[namespace] || undefined;\n }\n};\n//# sourceMappingURL=NetworkUtil.js.map","/*\r\n * big.js v6.2.2\r\n * A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.\r\n * Copyright (c) 2024 Michael Mclaughlin\r\n * https://github.com/MikeMcl/big.js/LICENCE.md\r\n */\r\n\r\n\r\n/************************************** EDITABLE DEFAULTS *****************************************/\r\n\r\n\r\n // The default values below must be integers within the stated ranges.\r\n\r\n /*\r\n * The maximum number of decimal places (DP) of the results of operations involving division:\r\n * div and sqrt, and pow with negative exponents.\r\n */\r\nvar DP = 20, // 0 to MAX_DP\r\n\r\n /*\r\n * The rounding mode (RM) used when rounding to the above decimal places.\r\n *\r\n * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN)\r\n * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP)\r\n * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN)\r\n * 3 Away from zero. (ROUND_UP)\r\n */\r\n RM = 1, // 0, 1, 2 or 3\r\n\r\n // The maximum value of DP and Big.DP.\r\n MAX_DP = 1E6, // 0 to 1000000\r\n\r\n // The maximum magnitude of the exponent argument to the pow method.\r\n MAX_POWER = 1E6, // 1 to 1000000\r\n\r\n /*\r\n * The negative exponent (NE) at and beneath which toString returns exponential notation.\r\n * (JavaScript numbers: -7)\r\n * -1000000 is the minimum recommended exponent value of a Big.\r\n */\r\n NE = -7, // 0 to -1000000\r\n\r\n /*\r\n * The positive exponent (PE) at and above which toString returns exponential notation.\r\n * (JavaScript numbers: 21)\r\n * 1000000 is the maximum recommended exponent value of a Big, but this limit is not enforced.\r\n */\r\n PE = 21, // 0 to 1000000\r\n\r\n /*\r\n * When true, an error will be thrown if a primitive number is passed to the Big constructor,\r\n * or if valueOf is called, or if toNumber is called on a Big which cannot be converted to a\r\n * primitive number without a loss of precision.\r\n */\r\n STRICT = false, // true or false\r\n\r\n\r\n/**************************************************************************************************/\r\n\r\n\r\n // Error messages.\r\n NAME = '[big.js] ',\r\n INVALID = NAME + 'Invalid ',\r\n INVALID_DP = INVALID + 'decimal places',\r\n INVALID_RM = INVALID + 'rounding mode',\r\n DIV_BY_ZERO = NAME + 'Division by zero',\r\n\r\n // The shared prototype object.\r\n P = {},\r\n UNDEFINED = void 0,\r\n NUMERIC = /^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i;\r\n\r\n\r\n/*\r\n * Create and return a Big constructor.\r\n */\r\nfunction _Big_() {\r\n\r\n /*\r\n * The Big constructor and exported function.\r\n * Create and return a new instance of a Big number object.\r\n *\r\n * n {number|string|Big} A numeric value.\r\n */\r\n function Big(n) {\r\n var x = this;\r\n\r\n // Enable constructor usage without new.\r\n if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n);\r\n\r\n // Duplicate.\r\n if (n instanceof Big) {\r\n x.s = n.s;\r\n x.e = n.e;\r\n x.c = n.c.slice();\r\n } else {\r\n if (typeof n !== 'string') {\r\n if (Big.strict === true && typeof n !== 'bigint') {\r\n throw TypeError(INVALID + 'value');\r\n }\r\n\r\n // Minus zero?\r\n n = n === 0 && 1 / n < 0 ? '-0' : String(n);\r\n }\r\n\r\n parse(x, n);\r\n }\r\n\r\n // Retain a reference to this Big constructor.\r\n // Shadow Big.prototype.constructor which points to Object.\r\n x.constructor = Big;\r\n }\r\n\r\n Big.prototype = P;\r\n Big.DP = DP;\r\n Big.RM = RM;\r\n Big.NE = NE;\r\n Big.PE = PE;\r\n Big.strict = STRICT;\r\n Big.roundDown = 0;\r\n Big.roundHalfUp = 1;\r\n Big.roundHalfEven = 2;\r\n Big.roundUp = 3;\r\n\r\n return Big;\r\n}\r\n\r\n\r\n/*\r\n * Parse the number or string value passed to a Big constructor.\r\n *\r\n * x {Big} A Big number instance.\r\n * n {number|string} A numeric value.\r\n */\r\nfunction parse(x, n) {\r\n var e, i, nl;\r\n\r\n if (!NUMERIC.test(n)) {\r\n throw Error(INVALID + 'number');\r\n }\r\n\r\n // Determine sign.\r\n x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1;\r\n\r\n // Decimal point?\r\n if ((e = n.indexOf('.')) > -1) n = n.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = n.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +n.slice(i + 1);\r\n n = n.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = n.length;\r\n }\r\n\r\n nl = n.length;\r\n\r\n // Determine leading zeros.\r\n for (i = 0; i < nl && n.charAt(i) == '0';) ++i;\r\n\r\n if (i == nl) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n\r\n // Determine trailing zeros.\r\n for (; nl > 0 && n.charAt(--nl) == '0';);\r\n x.e = e - i - 1;\r\n x.c = [];\r\n\r\n // Convert string to array of digits without leading/trailing zeros.\r\n for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++);\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Round Big x to a maximum of sd significant digits using rounding mode rm.\r\n *\r\n * x {Big} The Big to round.\r\n * sd {number} Significant digits: integer, 0 to MAX_DP inclusive.\r\n * rm {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n * [more] {boolean} Whether the result of division was truncated.\r\n */\r\nfunction round(x, sd, rm, more) {\r\n var xc = x.c;\r\n\r\n if (rm === UNDEFINED) rm = x.constructor.RM;\r\n if (rm !== 0 && rm !== 1 && rm !== 2 && rm !== 3) {\r\n throw Error(INVALID_RM);\r\n }\r\n\r\n if (sd < 1) {\r\n more =\r\n rm === 3 && (more || !!xc[0]) || sd === 0 && (\r\n rm === 1 && xc[0] >= 5 ||\r\n rm === 2 && (xc[0] > 5 || xc[0] === 5 && (more || xc[1] !== UNDEFINED))\r\n );\r\n\r\n xc.length = 1;\r\n\r\n if (more) {\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n x.e = x.e - sd + 1;\r\n xc[0] = 1;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n } else if (sd < xc.length) {\r\n\r\n // xc[sd] is the digit after the digit that may be rounded up.\r\n more =\r\n rm === 1 && xc[sd] >= 5 ||\r\n rm === 2 && (xc[sd] > 5 || xc[sd] === 5 &&\r\n (more || xc[sd + 1] !== UNDEFINED || xc[sd - 1] & 1)) ||\r\n rm === 3 && (more || !!xc[0]);\r\n\r\n // Remove any digits after the required precision.\r\n xc.length = sd;\r\n\r\n // Round up?\r\n if (more) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up.\r\n for (; ++xc[--sd] > 9;) {\r\n xc[sd] = 0;\r\n if (sd === 0) {\r\n ++x.e;\r\n xc.unshift(1);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (sd = xc.length; !xc[--sd];) xc.pop();\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Return a string representing the value of Big x in normal or exponential notation.\r\n * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.\r\n */\r\nfunction stringify(x, doExponential, isNonzero) {\r\n var e = x.e,\r\n s = x.c.join(''),\r\n n = s.length;\r\n\r\n // Exponential notation?\r\n if (doExponential) {\r\n s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e;\r\n\r\n // Normal notation.\r\n } else if (e < 0) {\r\n for (; ++e;) s = '0' + s;\r\n s = '0.' + s;\r\n } else if (e > 0) {\r\n if (++e > n) {\r\n for (e -= n; e--;) s += '0';\r\n } else if (e < n) {\r\n s = s.slice(0, e) + '.' + s.slice(e);\r\n }\r\n } else if (n > 1) {\r\n s = s.charAt(0) + '.' + s.slice(1);\r\n }\r\n\r\n return x.s < 0 && isNonzero ? '-' + s : s;\r\n}\r\n\r\n\r\n// Prototype/instance methods\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the absolute value of this Big.\r\n */\r\nP.abs = function () {\r\n var x = new this.constructor(this);\r\n x.s = 1;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return 1 if the value of this Big is greater than the value of Big y,\r\n * -1 if the value of this Big is less than the value of Big y, or\r\n * 0 if they have the same value.\r\n */\r\nP.cmp = function (y) {\r\n var isneg,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new x.constructor(y)).c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n isneg = i < 0;\r\n\r\n // Compare exponents.\r\n if (k != l) return k > l ^ isneg ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = -1; ++i < j;) {\r\n if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ isneg ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,\r\n * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\nP.div = function (y) {\r\n var x = this,\r\n Big = x.constructor,\r\n a = x.c, // dividend\r\n b = (y = new Big(y)).c, // divisor\r\n k = x.s == y.s ? 1 : -1,\r\n dp = Big.DP;\r\n\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n\r\n // Divisor is zero?\r\n if (!b[0]) {\r\n throw Error(DIV_BY_ZERO);\r\n }\r\n\r\n // Dividend is 0? Return +-0.\r\n if (!a[0]) {\r\n y.s = k;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n var bl, bt, n, cmp, ri,\r\n bz = b.slice(),\r\n ai = bl = b.length,\r\n al = a.length,\r\n r = a.slice(0, bl), // remainder\r\n rl = r.length,\r\n q = y, // quotient\r\n qc = q.c = [],\r\n qi = 0,\r\n p = dp + (q.e = x.e - y.e) + 1; // precision of the result\r\n\r\n q.s = k;\r\n k = p < 0 ? 0 : p;\r\n\r\n // Create version of divisor with leading zero.\r\n bz.unshift(0);\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; rl++ < bl;) r.push(0);\r\n\r\n do {\r\n\r\n // n is how many times the divisor goes into current remainder.\r\n for (n = 0; n < 10; n++) {\r\n\r\n // Compare divisor and remainder.\r\n if (bl != (rl = r.length)) {\r\n cmp = bl > rl ? 1 : -1;\r\n } else {\r\n for (ri = -1, cmp = 0; ++ri < bl;) {\r\n if (b[ri] != r[ri]) {\r\n cmp = b[ri] > r[ri] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // If divisor < remainder, subtract divisor from remainder.\r\n if (cmp < 0) {\r\n\r\n // Remainder can't be more than 1 digit longer than divisor.\r\n // Equalise lengths using divisor with extra leading zero?\r\n for (bt = rl == bl ? b : bz; rl;) {\r\n if (r[--rl] < bt[rl]) {\r\n ri = rl;\r\n for (; ri && !r[--ri];) r[ri] = 9;\r\n --r[ri];\r\n r[rl] += 10;\r\n }\r\n r[rl] -= bt[rl];\r\n }\r\n\r\n for (; !r[0];) r.shift();\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n // Add the digit n to the result array.\r\n qc[qi++] = cmp ? n : ++n;\r\n\r\n // Update the remainder.\r\n if (r[0] && cmp) r[rl] = a[ai] || 0;\r\n else r = [a[ai]];\r\n\r\n } while ((ai++ < al || r[0] !== UNDEFINED) && k--);\r\n\r\n // Leading zero? Do not remove if result is simply zero (qi == 1).\r\n if (!qc[0] && qi != 1) {\r\n\r\n // There can't be more than one zero.\r\n qc.shift();\r\n q.e--;\r\n p--;\r\n }\r\n\r\n // Round?\r\n if (qi > p) round(q, p, Big.RM, r[0] !== UNDEFINED);\r\n\r\n return q;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is equal to the value of Big y, otherwise return false.\r\n */\r\nP.eq = function (y) {\r\n return this.cmp(y) === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is greater than the value of Big y, otherwise return\r\n * false.\r\n */\r\nP.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\nP.gte = function (y) {\r\n return this.cmp(y) > -1;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is less than the value of Big y, otherwise return false.\r\n */\r\nP.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is less than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\nP.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big minus the value of Big y.\r\n */\r\nP.minus = P.sub = function (y) {\r\n var i, j, t, xlty,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xc = x.c.slice(),\r\n xe = x.e,\r\n yc = y.c,\r\n ye = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n if (yc[0]) {\r\n y.s = -b;\r\n } else if (xc[0]) {\r\n y = new Big(x);\r\n } else {\r\n y.s = 1;\r\n }\r\n return y;\r\n }\r\n\r\n // Determine which is the bigger number. Prepend zeros to equalise exponents.\r\n if (a = xe - ye) {\r\n\r\n if (xlty = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n for (b = a; b--;) t.push(0);\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = ((xlty = xc.length < yc.length) ? xc : yc).length;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n if (xc[b] != yc[b]) {\r\n xlty = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xlty) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n /*\r\n * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only\r\n * needs to start at yc.length.\r\n */\r\n if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0;\r\n\r\n // Subtract yc from xc.\r\n for (b = i; j > a;) {\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i];) xc[i] = 9;\r\n --xc[i];\r\n xc[j] += 10;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--b] === 0;) xc.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] === 0;) {\r\n xc.shift();\r\n --ye;\r\n }\r\n\r\n if (!xc[0]) {\r\n\r\n // n - n = +0\r\n y.s = 1;\r\n\r\n // Result must be zero.\r\n xc = [ye = 0];\r\n }\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big modulo the value of Big y.\r\n */\r\nP.mod = function (y) {\r\n var ygtx,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n if (!y.c[0]) {\r\n throw Error(DIV_BY_ZERO);\r\n }\r\n\r\n x.s = y.s = 1;\r\n ygtx = y.cmp(x) == 1;\r\n x.s = a;\r\n y.s = b;\r\n\r\n if (ygtx) return new Big(x);\r\n\r\n a = Big.DP;\r\n b = Big.RM;\r\n Big.DP = Big.RM = 0;\r\n x = x.div(y);\r\n Big.DP = a;\r\n Big.RM = b;\r\n\r\n return this.minus(x.times(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big negated.\r\n */\r\nP.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big plus the value of Big y.\r\n */\r\nP.plus = P.add = function (y) {\r\n var e, k, t,\r\n x = this,\r\n Big = x.constructor;\r\n\r\n y = new Big(y);\r\n\r\n // Signs differ?\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e,\r\n xc = x.c,\r\n ye = y.e,\r\n yc = y.c;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n if (!yc[0]) {\r\n if (xc[0]) {\r\n y = new Big(x);\r\n } else {\r\n y.s = x.s;\r\n }\r\n }\r\n return y;\r\n }\r\n\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents.\r\n // Note: reverse faster than unshifts.\r\n if (e = xe - ye) {\r\n if (e > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n e = -e;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; e--;) t.push(0);\r\n t.reverse();\r\n }\r\n\r\n // Point xc to the longer array.\r\n if (xc.length - yc.length < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n }\r\n\r\n e = yc.length;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.\r\n for (k = 0; e; xc[e] %= 10) k = (xc[--e] = xc[e] + yc[e] + k) / 10 | 0;\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n\r\n if (k) {\r\n xc.unshift(k);\r\n ++ye;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (e = xc.length; xc[--e] === 0;) xc.pop();\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a Big whose value is the value of this Big raised to the power n.\r\n * If n is negative, round to a maximum of Big.DP decimal places using rounding\r\n * mode Big.RM.\r\n *\r\n * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.\r\n */\r\nP.pow = function (n) {\r\n var x = this,\r\n one = new x.constructor('1'),\r\n y = one,\r\n isneg = n < 0;\r\n\r\n if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) {\r\n throw Error(INVALID + 'exponent');\r\n }\r\n\r\n if (isneg) n = -n;\r\n\r\n for (;;) {\r\n if (n & 1) y = y.times(x);\r\n n >>= 1;\r\n if (!n) break;\r\n x = x.times(x);\r\n }\r\n\r\n return isneg ? one.div(y) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big rounded to a maximum precision of sd\r\n * significant digits using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * sd {number} Significant digits: integer, 1 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.prec = function (sd, rm) {\r\n if (sd !== ~~sd || sd < 1 || sd > MAX_DP) {\r\n throw Error(INVALID + 'precision');\r\n }\r\n return round(new this.constructor(this), sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big rounded to a maximum of dp decimal places\r\n * using rounding mode rm, or Big.RM if rm is not specified.\r\n * If dp is negative, round to an integer which is a multiple of 10**-dp.\r\n * If dp is not specified, round to 0 decimal places.\r\n *\r\n * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.round = function (dp, rm) {\r\n if (dp === UNDEFINED) dp = 0;\r\n else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n return round(new this.constructor(this), dp + this.e + 1, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the square root of the value of this Big, rounded, if\r\n * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\nP.sqrt = function () {\r\n var r, c, t,\r\n x = this,\r\n Big = x.constructor,\r\n s = x.s,\r\n e = x.e,\r\n half = new Big('0.5');\r\n\r\n // Zero?\r\n if (!x.c[0]) return new Big(x);\r\n\r\n // Negative?\r\n if (s < 0) {\r\n throw Error(NAME + 'No square root');\r\n }\r\n\r\n // Estimate.\r\n s = Math.sqrt(+stringify(x, true, true));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.\r\n if (s === 0 || s === 1 / 0) {\r\n c = x.c.join('');\r\n if (!(c.length + e & 1)) c += '0';\r\n s = Math.sqrt(c);\r\n e = ((e + 1) / 2 | 0) - (e < 0 || e & 1);\r\n r = new Big((s == 1 / 0 ? '5e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e);\r\n } else {\r\n r = new Big(s + '');\r\n }\r\n\r\n e = r.e + (Big.DP += 4);\r\n\r\n // Newton-Raphson iteration.\r\n do {\r\n t = r;\r\n r = half.times(t.plus(x.div(t)));\r\n } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join(''));\r\n\r\n return round(r, (Big.DP -= 4) + r.e + 1, Big.RM);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big times the value of Big y.\r\n */\r\nP.times = P.mul = function (y) {\r\n var c,\r\n x = this,\r\n Big = x.constructor,\r\n xc = x.c,\r\n yc = (y = new Big(y)).c,\r\n a = xc.length,\r\n b = yc.length,\r\n i = x.e,\r\n j = y.e;\r\n\r\n // Determine sign of result.\r\n y.s = x.s == y.s ? 1 : -1;\r\n\r\n // Return signed 0 if either 0.\r\n if (!xc[0] || !yc[0]) {\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // Initialise exponent of result as x.e + y.e.\r\n y.e = i + j;\r\n\r\n // If array xc has fewer digits than yc, swap xc and yc, and lengths.\r\n if (a < b) {\r\n c = xc;\r\n xc = yc;\r\n yc = c;\r\n j = a;\r\n a = b;\r\n b = j;\r\n }\r\n\r\n // Initialise coefficient array of result with zeros.\r\n for (c = new Array(j = a + b); j--;) c[j] = 0;\r\n\r\n // Multiply.\r\n\r\n // i is initially xc.length.\r\n for (i = b; i--;) {\r\n b = 0;\r\n\r\n // a is yc.length.\r\n for (j = a + i; j > i;) {\r\n\r\n // Current sum of products at this digit position, plus carry.\r\n b = c[j] + yc[i] * xc[j - i - 1] + b;\r\n c[j--] = b % 10;\r\n\r\n // carry\r\n b = b / 10 | 0;\r\n }\r\n\r\n c[j] = b;\r\n }\r\n\r\n // Increment result exponent if there is a final carry, otherwise remove leading zero.\r\n if (b) ++y.e;\r\n else c.shift();\r\n\r\n // Remove trailing zeros.\r\n for (i = c.length; !c[--i];) c.pop();\r\n y.c = c;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big in exponential notation rounded to dp fixed\r\n * decimal places using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * dp? {number} Decimal places: integer, 0 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.toExponential = function (dp, rm) {\r\n var x = this,\r\n n = x.c[0];\r\n\r\n if (dp !== UNDEFINED) {\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n x = round(new x.constructor(x), ++dp, rm);\r\n for (; x.c.length < dp;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, true, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big in normal notation rounded to dp fixed\r\n * decimal places using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * dp? {number} Decimal places: integer, 0 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n */\r\nP.toFixed = function (dp, rm) {\r\n var x = this,\r\n n = x.c[0];\r\n\r\n if (dp !== UNDEFINED) {\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n x = round(new x.constructor(x), dp + x.e + 1, rm);\r\n\r\n // x.e may have changed if the value is rounded up.\r\n for (dp = dp + x.e + 1; x.c.length < dp;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, false, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Omit the sign for negative zero.\r\n */\r\nP[Symbol.for('nodejs.util.inspect.custom')] = P.toJSON = P.toString = function () {\r\n var x = this,\r\n Big = x.constructor;\r\n return stringify(x, x.e <= Big.NE || x.e >= Big.PE, !!x.c[0]);\r\n};\r\n\r\n\r\n/*\r\n * Return the value of this Big as a primitve number.\r\n */\r\nP.toNumber = function () {\r\n var n = +stringify(this, true, true);\r\n if (this.constructor.strict === true && !this.eq(n.toString())) {\r\n throw Error(NAME + 'Imprecise conversion');\r\n }\r\n return n;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big rounded to sd significant digits using\r\n * rounding mode rm, or Big.RM if rm is not specified.\r\n * Use exponential notation if sd is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * sd {number} Significant digits: integer, 1 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.toPrecision = function (sd, rm) {\r\n var x = this,\r\n Big = x.constructor,\r\n n = x.c[0];\r\n\r\n if (sd !== UNDEFINED) {\r\n if (sd !== ~~sd || sd < 1 || sd > MAX_DP) {\r\n throw Error(INVALID + 'precision');\r\n }\r\n x = round(new Big(x), sd, rm);\r\n for (; x.c.length < sd;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, sd <= x.e || x.e <= Big.NE || x.e >= Big.PE, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Include the sign for negative zero.\r\n */\r\nP.valueOf = function () {\r\n var x = this,\r\n Big = x.constructor;\r\n if (Big.strict === true) {\r\n throw Error(NAME + 'valueOf disallowed');\r\n }\r\n return stringify(x, x.e <= Big.NE || x.e >= Big.PE, true);\r\n};\r\n\r\n\r\n// Export\r\n\r\n\r\nexport var Big = _Big_();\r\n\r\n/// <reference types=\"https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/master/types/big.js/index.d.ts\" />\r\nexport default Big;\r\n","import Big from 'big.js';\nexport const NumberUtil = {\n bigNumber(value) {\n if (!value) {\n return new Big(0);\n }\n return new Big(value);\n },\n multiply(a, b) {\n if (a === undefined || b === undefined) {\n return new Big(0);\n }\n const aBigNumber = new Big(a);\n const bBigNumber = new Big(b);\n return aBigNumber.times(bBigNumber);\n },\n formatNumberToLocalString(value, decimals = 2) {\n if (value === undefined) {\n return '0.00';\n }\n if (typeof value === 'number') {\n return value.toLocaleString('en-US', {\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals\n });\n }\n return parseFloat(value).toLocaleString('en-US', {\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals\n });\n },\n parseLocalStringToNumber(value) {\n if (value === undefined) {\n return 0;\n }\n return parseFloat(value.replace(/,/gu, ''));\n }\n};\n//# sourceMappingURL=NumberUtil.js.map","export const erc20ABI = [\n {\n type: 'function',\n name: 'transfer',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: '_to',\n type: 'address'\n },\n {\n name: '_value',\n type: 'uint256'\n }\n ],\n outputs: [\n {\n name: '',\n type: 'bool'\n }\n ]\n },\n {\n type: 'function',\n name: 'transferFrom',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: '_from',\n type: 'address'\n },\n {\n name: '_to',\n type: 'address'\n },\n {\n name: '_value',\n type: 'uint256'\n }\n ],\n outputs: [\n {\n name: '',\n type: 'bool'\n }\n ]\n }\n];\n//# sourceMappingURL=erc20.js.map","export const swapABI = [\n {\n type: 'function',\n name: 'approve',\n stateMutability: 'nonpayable',\n inputs: [\n { name: 'spender', type: 'address' },\n { name: 'amount', type: 'uint256' }\n ],\n outputs: [{ type: 'bool' }]\n }\n];\n//# sourceMappingURL=swap.js.map","export const usdtABI = [\n {\n type: 'function',\n name: 'transfer',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'recipient',\n type: 'address'\n },\n {\n name: 'amount',\n type: 'uint256'\n }\n ],\n outputs: []\n },\n {\n type: 'function',\n name: 'transferFrom',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'sender',\n type: 'address'\n },\n {\n name: 'recipient',\n type: 'address'\n },\n {\n name: 'amount',\n type: 'uint256'\n }\n ],\n outputs: [\n {\n name: '',\n type: 'bool'\n }\n ]\n }\n];\n//# sourceMappingURL=usdt.js.map","import { erc20ABI } from '../contracts/erc20.js';\nimport { swapABI } from '../contracts/swap.js';\nimport { usdtABI } from '../contracts/usdt.js';\nimport { ConstantsUtil } from './ConstantsUtil.js';\nexport const ContractUtil = {\n getERC20Abi: (tokenAddress) => {\n if (ConstantsUtil.USDT_CONTRACT_ADDRESSES.includes(tokenAddress)) {\n return usdtABI;\n }\n return erc20ABI;\n },\n getSwapAbi: () => swapABI\n};\n//# sourceMappingURL=ContractUtil.js.map","export const ParseUtil = {\n validateCaipAddress(address) {\n if (address.split(':')?.length !== 3) {\n throw new Error('Invalid CAIP Address');\n }\n return address;\n },\n parseCaipAddress(caipAddress) {\n const parts = caipAddress.split(':');\n if (parts.length !== 3) {\n throw new Error(`Invalid CAIP-10 address: ${caipAddress}`);\n }\n const [chainNamespace, chainId, address] = parts;\n if (!chainNamespace || !chainId || !address) {\n throw new Error(`Invalid CAIP-10 address: ${caipAddress}`);\n }\n return {\n chainNamespace: chainNamespace,\n chainId: chainId,\n address\n };\n },\n parseCaipNetworkId(caipNetworkId) {\n const parts = caipNetworkId.split(':');\n if (parts.length !== 2) {\n throw new Error(`Invalid CAIP-2 network id: ${caipNetworkId}`);\n }\n const [chainNamespace, chainId] = parts;\n if (!chainNamespace || !chainId) {\n throw new Error(`Invalid CAIP-2 network id: ${caipNetworkId}`);\n }\n return {\n chainNamespace: chainNamespace,\n chainId: chainId\n };\n }\n};\n//# sourceMappingURL=ParseUtil.js.map","export const SafeLocalStorageKeys = {\n WALLET_ID: '@appkit/wallet_id',\n WALLET_NAME: '@appkit/wallet_name',\n SOLANA_WALLET: '@appkit/solana_wallet',\n SOLANA_CAIP_CHAIN: '@appkit/solana_caip_chain',\n ACTIVE_CAIP_NETWORK_ID: '@appkit/active_caip_network_id',\n CONNECTED_SOCIAL: '@appkit/connected_social',\n CONNECTED_SOCIAL_USERNAME: '@appkit-wallet/SOCIAL_USERNAME',\n RECENT_WALLETS: '@appkit/recent_wallets',\n DEEPLINK_CHOICE: 'WALLETCONNECT_DEEPLINK_CHOICE',\n ACTIVE_NAMESPACE: '@appkit/active_namespace',\n CONNECTED_NAMESPACES: '@appkit/connected_namespaces',\n CONNECTION_STATUS: '@appkit/connection_status',\n SIWX_AUTH_TOKEN: '@appkit/siwx-auth-token',\n SIWX_NONCE_TOKEN: '@appkit/siwx-nonce-token',\n TELEGRAM_SOCIAL_PROVIDER: '@appkit/social_provider',\n NATIVE_BALANCE_CACHE: '@appkit/native_balance_cache',\n PORTFOLIO_CACHE: '@appkit/portfolio_cache',\n ENS_CACHE: '@appkit/ens_cache',\n IDENTITY_CACHE: '@appkit/identity_cache',\n PREFERRED_ACCOUNT_TYPES: '@appkit/preferred_account_types',\n CONNECTIONS: '@appkit/connections'\n};\nexport function getSafeConnectorIdKey(namespace) {\n if (!namespace) {\n throw new Error('Namespace is required for CONNECTED_CONNECTOR_ID');\n }\n return `@appkit/${namespace}:connected_connector_id`;\n}\nexport const SafeLocalStorage = {\n setItem(key, value) {\n if (isSafe() && value !== undefined) {\n localStorage.setItem(key, value);\n }\n },\n getItem(key) {\n if (isSafe()) {\n return localStorage.getItem(key) || undefined;\n }\n return undefined;\n },\n removeItem(key) {\n if (isSafe()) {\n localStorage.removeItem(key);\n }\n },\n clear() {\n if (isSafe()) {\n localStorage.clear();\n }\n }\n};\nexport function isSafe() {\n return typeof window !== 'undefined' && typeof localStorage !== 'undefined';\n}\n//# sourceMappingURL=SafeLocalStorage.js.map","export function getW3mThemeVariables(themeVariables, themeType) {\n if (themeType === 'light') {\n return {\n '--w3m-accent': themeVariables?.['--w3m-accent'] || 'hsla(231, 100%, 70%, 1)',\n '--w3m-background': '#fff'\n };\n }\n return {\n '--w3m-accent': themeVariables?.['--w3m-accent'] || 'hsla(230, 100%, 67%, 1)',\n '--w3m-background': '#121313'\n };\n}\n//# sourceMappingURL=ThemeUtil.js.map","const e=Symbol(),t=Symbol(),r=\"a\",n=\"w\";let o=(e,t)=>new Proxy(e,t);const s=Object.getPrototypeOf,c=new WeakMap,l=e=>e&&(c.has(e)?c.get(e):s(e)===Object.prototype||s(e)===Array.prototype),f=e=>\"object\"==typeof e&&null!==e,i=e=>{if(Array.isArray(e))return Array.from(e);const t=Object.getOwnPropertyDescriptors(e);return Object.values(t).forEach(e=>{e.configurable=!0}),Object.create(s(e),t)},u=e=>e[t]||e,a=(s,c,f,p)=>{if(!l(s))return s;let g=p&&p.get(s);if(!g){const e=u(s);g=(e=>Object.values(Object.getOwnPropertyDescriptors(e)).some(e=>!e.configurable&&!e.writable))(e)?[e,i(e)]:[e],null==p||p.set(s,g)}const[y,h]=g;let w=f&&f.get(y);return w&&w[1].f===!!h||(w=((o,s)=>{const c={f:s};let l=!1;const f=(e,t)=>{if(!l){let s=c[r].get(o);if(s||(s={},c[r].set(o,s)),e===n)s[n]=!0;else{let r=s[e];r||(r=new Set,s[e]=r),r.add(t)}}},i={get:(e,n)=>n===t?o:(f(\"k\",n),a(Reflect.get(e,n),c[r],c.c,c.t)),has:(t,n)=>n===e?(l=!0,c[r].delete(o),!0):(f(\"h\",n),Reflect.has(t,n)),getOwnPropertyDescriptor:(e,t)=>(f(\"o\",t),Reflect.getOwnPropertyDescriptor(e,t)),ownKeys:e=>(f(n),Reflect.ownKeys(e))};return s&&(i.set=i.deleteProperty=()=>!1),[i,c]})(y,!!h),w[1].p=o(h||y,w[0]),f&&f.set(y,w)),w[1][r]=c,w[1].c=f,w[1].t=p,w[1].p},p=(e,t,r,o,s=Object.is)=>{if(s(e,t))return!1;if(!f(e)||!f(t))return!0;const c=r.get(u(e));if(!c)return!0;if(o){const r=o.get(e);if(r&&r.n===t)return r.g;o.set(e,{n:t,g:!1})}let l=null;try{for(const r of c.h||[])if(l=Reflect.has(e,r)!==Reflect.has(t,r),l)return l;if(!0===c[n]){if(l=((e,t)=>{const r=Reflect.ownKeys(e),n=Reflect.ownKeys(t);return r.length!==n.length||r.some((e,t)=>e!==n[t])})(e,t),l)return l}else for(const r of c.o||[])if(l=!!Reflect.getOwnPropertyDescriptor(e,r)!=!!Reflect.getOwnPropertyDescriptor(t,r),l)return l;for(const n of c.k||[])if(l=p(e[n],t[n],r,o,s),l)return l;return null===l&&(l=!0),l}finally{o&&o.set(e,{n:t,g:l})}},g=t=>!!l(t)&&e in t,y=e=>l(e)&&e[t]||null,h=(e,t=!0)=>{c.set(e,t)},w=(e,t,r)=>{const o=[],s=new WeakSet,c=(e,l)=>{if(s.has(e))return;f(e)&&s.add(e);const i=f(e)&&t.get(u(e));if(i){var a,p;if(null==(a=i.h)||a.forEach(e=>{const t=`:has(${String(e)})`;o.push(l?[...l,t]:[t])}),!0===i[n]){const e=\":ownKeys\";o.push(l?[...l,e]:[e])}else{var g;null==(g=i.o)||g.forEach(e=>{const t=`:hasOwn(${String(e)})`;o.push(l?[...l,t]:[t])})}null==(p=i.k)||p.forEach(t=>{r&&!(\"value\"in(Object.getOwnPropertyDescriptor(e,t)||{}))||c(e[t],l?[...l,t]:[t])})}else l&&o.push(l)};return c(e),o},O=e=>{o=e};export{w as affectedToPathList,a as createProxy,y as getUntracked,p as isChanged,h as markToTrack,O as replaceNewProxy,g as trackMemo};\n//# sourceMappingURL=index.modern.mjs.map\n","import { markToTrack, getUntracked } from 'proxy-compare';\n\nconst isObject = (x) => typeof x === \"object\" && x !== null;\nconst proxyStateMap = /* @__PURE__ */ new WeakMap();\nconst refSet = /* @__PURE__ */ new WeakSet();\nconst buildProxyFunction = (objectIs = Object.is, newProxy = (target, handler) => new Proxy(target, handler), canProxy = (x) => isObject(x) && !refSet.has(x) && (Array.isArray(x) || !(Symbol.iterator in x)) && !(x instanceof WeakMap) && !(x instanceof WeakSet) && !(x instanceof Error) && !(x instanceof Number) && !(x instanceof Date) && !(x instanceof String) && !(x instanceof RegExp) && !(x instanceof ArrayBuffer), defaultHandlePromise = (promise) => {\n switch (promise.status) {\n case \"fulfilled\":\n return promise.value;\n case \"rejected\":\n throw promise.reason;\n default:\n throw promise;\n }\n}, snapCache = /* @__PURE__ */ new WeakMap(), createSnapshot = (target, version, handlePromise = defaultHandlePromise) => {\n const cache = snapCache.get(target);\n if ((cache == null ? void 0 : cache[0]) === version) {\n return cache[1];\n }\n const snap = Array.isArray(target) ? [] : Object.create(Object.getPrototypeOf(target));\n markToTrack(snap, true);\n snapCache.set(target, [version, snap]);\n Reflect.ownKeys(target).forEach((key) => {\n if (Object.getOwnPropertyDescriptor(snap, key)) {\n return;\n }\n const value = Reflect.get(target, key);\n const { enumerable } = Reflect.getOwnPropertyDescriptor(\n target,\n key\n );\n const desc = {\n value,\n enumerable,\n // This is intentional to avoid copying with proxy-compare.\n // It's still non-writable, so it avoids assigning a value.\n configurable: true\n };\n if (refSet.has(value)) {\n markToTrack(value, false);\n } else if (value instanceof Promise) {\n delete desc.value;\n desc.get = () => handlePromise(value);\n } else if (proxyStateMap.has(value)) {\n const [target2, ensureVersion] = proxyStateMap.get(\n value\n );\n desc.value = createSnapshot(\n target2,\n ensureVersion(),\n handlePromise\n );\n }\n Object.defineProperty(snap, key, desc);\n });\n return Object.preventExtensions(snap);\n}, proxyCache = /* @__PURE__ */ new WeakMap(), versionHolder = [1, 1], proxyFunction = (initialObject) => {\n if (!isObject(initialObject)) {\n throw new Error(\"object required\");\n }\n const found = proxyCache.get(initialObject);\n if (found) {\n return found;\n }\n let version = versionHolder[0];\n const listeners = /* @__PURE__ */ new Set();\n const notifyUpdate = (op, nextVersion = ++versionHolder[0]) => {\n if (version !== nextVersion) {\n version = nextVersion;\n listeners.forEach((listener) => listener(op, nextVersion));\n }\n };\n let checkVersion = versionHolder[1];\n const ensureVersion = (nextCheckVersion = ++versionHolder[1]) => {\n if (checkVersion !== nextCheckVersion && !listeners.size) {\n checkVersion = nextCheckVersion;\n propProxyStates.forEach(([propProxyState]) => {\n const propVersion = propProxyState[1](nextCheckVersion);\n if (propVersion > version) {\n version = propVersion;\n }\n });\n }\n return version;\n };\n const createPropListener = (prop) => (op, nextVersion) => {\n const newOp = [...op];\n newOp[1] = [prop, ...newOp[1]];\n notifyUpdate(newOp, nextVersion);\n };\n const propProxyStates = /* @__PURE__ */ new Map();\n const addPropListener = (prop, propProxyState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && propProxyStates.has(prop)) {\n throw new Error(\"prop listener already exists\");\n }\n if (listeners.size) {\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n } else {\n propProxyStates.set(prop, [propProxyState]);\n }\n };\n const removePropListener = (prop) => {\n var _a;\n const entry = propProxyStates.get(prop);\n if (entry) {\n propProxyStates.delete(prop);\n (_a = entry[1]) == null ? void 0 : _a.call(entry);\n }\n };\n const addListener = (listener) => {\n listeners.add(listener);\n if (listeners.size === 1) {\n propProxyStates.forEach(([propProxyState, prevRemove], prop) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && prevRemove) {\n throw new Error(\"remove already exists\");\n }\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n });\n }\n const removeListener = () => {\n listeners.delete(listener);\n if (listeners.size === 0) {\n propProxyStates.forEach(([propProxyState, remove], prop) => {\n if (remove) {\n remove();\n propProxyStates.set(prop, [propProxyState]);\n }\n });\n }\n };\n return removeListener;\n };\n const baseObject = Array.isArray(initialObject) ? [] : Object.create(Object.getPrototypeOf(initialObject));\n const handler = {\n deleteProperty(target, prop) {\n const prevValue = Reflect.get(target, prop);\n removePropListener(prop);\n const deleted = Reflect.deleteProperty(target, prop);\n if (deleted) {\n notifyUpdate([\"delete\", [prop], prevValue]);\n }\n return deleted;\n },\n set(target, prop, value, receiver) {\n const hasPrevValue = Reflect.has(target, prop);\n const prevValue = Reflect.get(target, prop, receiver);\n if (hasPrevValue && (objectIs(prevValue, value) || proxyCache.has(value) && objectIs(prevValue, proxyCache.get(value)))) {\n return true;\n }\n removePropListener(prop);\n if (isObject(value)) {\n value = getUntracked(value) || value;\n }\n let nextValue = value;\n if (value instanceof Promise) {\n value.then((v) => {\n value.status = \"fulfilled\";\n value.value = v;\n notifyUpdate([\"resolve\", [prop], v]);\n }).catch((e) => {\n value.status = \"rejected\";\n value.reason = e;\n notifyUpdate([\"reject\", [prop], e]);\n });\n } else {\n if (!proxyStateMap.has(value) && canProxy(value)) {\n nextValue = proxyFunction(value);\n }\n const childProxyState = !refSet.has(nextValue) && proxyStateMap.get(nextValue);\n if (childProxyState) {\n addPropListener(prop, childProxyState);\n }\n }\n Reflect.set(target, prop, nextValue, receiver);\n notifyUpdate([\"set\", [prop], value, prevValue]);\n return true;\n }\n };\n const proxyObject = newProxy(baseObject, handler);\n proxyCache.set(initialObject, proxyObject);\n const proxyState = [\n baseObject,\n ensureVersion,\n createSnapshot,\n addListener\n ];\n proxyStateMap.set(proxyObject, proxyState);\n Reflect.ownKeys(initialObject).forEach((key) => {\n const desc = Object.getOwnPropertyDescriptor(\n initialObject,\n key\n );\n if (\"value\" in desc) {\n proxyObject[key] = initialObject[key];\n delete desc.value;\n delete desc.writable;\n }\n Object.defineProperty(baseObject, key, desc);\n });\n return proxyObject;\n}) => [\n // public functions\n proxyFunction,\n // shared state\n proxyStateMap,\n refSet,\n // internal things\n objectIs,\n newProxy,\n canProxy,\n defaultHandlePromise,\n snapCache,\n createSnapshot,\n proxyCache,\n versionHolder\n];\nconst [defaultProxyFunction] = buildProxyFunction();\nfunction proxy(initialObject = {}) {\n return defaultProxyFunction(initialObject);\n}\nfunction getVersion(proxyObject) {\n const proxyState = proxyStateMap.get(proxyObject);\n return proxyState == null ? void 0 : proxyState[1]();\n}\nfunction subscribe(proxyObject, callback, notifyInSync) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n let promise;\n const ops = [];\n const addListener = proxyState[3];\n let isListenerActive = false;\n const listener = (op) => {\n ops.push(op);\n if (notifyInSync) {\n callback(ops.splice(0));\n return;\n }\n if (!promise) {\n promise = Promise.resolve().then(() => {\n promise = void 0;\n if (isListenerActive) {\n callback(ops.splice(0));\n }\n });\n }\n };\n const removeListener = addListener(listener);\n isListenerActive = true;\n return () => {\n isListenerActive = false;\n removeListener();\n };\n}\nfunction snapshot(proxyObject, handlePromise) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n const [target, ensureVersion, createSnapshot] = proxyState;\n return createSnapshot(target, ensureVersion(), handlePromise);\n}\nfunction ref(obj) {\n refSet.add(obj);\n return obj;\n}\nconst unstable_buildProxyFunction = buildProxyFunction;\n\nexport { getVersion, proxy, ref, snapshot, subscribe, unstable_buildProxyFunction };\n","import { subscribe, snapshot, proxy, ref, unstable_buildProxyFunction } from 'valtio/vanilla';\nimport { derive } from 'derive-valtio';\nexport { derive, underive, unstable_deriveSubscriptions } from 'derive-valtio';\n\nfunction subscribeKey(proxyObject, key, callback, notifyInSync) {\n let prevValue = proxyObject[key];\n return subscribe(\n proxyObject,\n () => {\n const nextValue = proxyObject[key];\n if (!Object.is(prevValue, nextValue)) {\n callback(prevValue = nextValue);\n }\n },\n notifyInSync\n );\n}\n\nlet currentCleanups;\nfunction watch(callback, options) {\n let alive = true;\n const cleanups = /* @__PURE__ */ new Set();\n const subscriptions = /* @__PURE__ */ new Map();\n const cleanup = () => {\n if (alive) {\n alive = false;\n cleanups.forEach((clean) => clean());\n cleanups.clear();\n subscriptions.forEach((unsubscribe) => unsubscribe());\n subscriptions.clear();\n }\n };\n const revalidate = async () => {\n if (!alive) {\n return;\n }\n cleanups.forEach((clean) => clean());\n cleanups.clear();\n const proxiesToSubscribe = /* @__PURE__ */ new Set();\n const parent = currentCleanups;\n currentCleanups = cleanups;\n try {\n const promiseOrPossibleCleanup = callback((proxyObject) => {\n proxiesToSubscribe.add(proxyObject);\n if (alive && !subscriptions.has(proxyObject)) {\n const unsubscribe = subscribe(proxyObject, revalidate, options == null ? void 0 : options.sync);\n subscriptions.set(proxyObject, unsubscribe);\n }\n return proxyObject;\n });\n const couldBeCleanup = promiseOrPossibleCleanup && promiseOrPossibleCleanup instanceof Promise ? await promiseOrPossibleCleanup : promiseOrPossibleCleanup;\n if (couldBeCleanup) {\n if (alive) {\n cleanups.add(couldBeCleanup);\n } else {\n cleanup();\n }\n }\n } finally {\n currentCleanups = parent;\n }\n subscriptions.forEach((unsubscribe, proxyObject) => {\n if (!proxiesToSubscribe.has(proxyObject)) {\n subscriptions.delete(proxyObject);\n unsubscribe();\n }\n });\n };\n if (currentCleanups) {\n currentCleanups.add(cleanup);\n }\n revalidate();\n return cleanup;\n}\n\nconst DEVTOOLS = Symbol();\nfunction devtools(proxyObject, options) {\n if (typeof options === \"string\") {\n console.warn(\n \"string name option is deprecated, use { name }. https://github.com/pmndrs/valtio/pull/400\"\n );\n options = { name: options };\n }\n const { enabled, name = \"\", ...rest } = options || {};\n let extension;\n try {\n extension = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extension) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && enabled) {\n console.warn(\"[Warning] Please install/enable Redux devtools extension\");\n }\n return;\n }\n let isTimeTraveling = false;\n const devtools2 = extension.connect({ name, ...rest });\n const unsub1 = subscribe(proxyObject, (ops) => {\n const action = ops.filter(([_, path]) => path[0] !== DEVTOOLS).map(([op, path]) => `${op}:${path.map(String).join(\".\")}`).join(\", \");\n if (!action) {\n return;\n }\n if (isTimeTraveling) {\n isTimeTraveling = false;\n } else {\n const snapWithoutDevtools = Object.assign({}, snapshot(proxyObject));\n delete snapWithoutDevtools[DEVTOOLS];\n devtools2.send(\n {\n type: action,\n updatedAt: (/* @__PURE__ */ new Date()).toLocaleString()\n },\n snapWithoutDevtools\n );\n }\n });\n const unsub2 = devtools2.subscribe((message) => {\n var _a, _b, _c, _d, _e, _f;\n if (message.type === \"ACTION\" && message.payload) {\n try {\n Object.assign(proxyObject, JSON.parse(message.payload));\n } catch (e) {\n console.error(\n \"please dispatch a serializable value that JSON.parse() and proxy() support\\n\",\n e\n );\n }\n }\n if (message.type === \"DISPATCH\" && message.state) {\n if (((_a = message.payload) == null ? void 0 : _a.type) === \"JUMP_TO_ACTION\" || ((_b = message.payload) == null ? void 0 : _b.type) === \"JUMP_TO_STATE\") {\n isTimeTraveling = true;\n const state = JSON.parse(message.state);\n Object.assign(proxyObject, state);\n }\n proxyObject[DEVTOOLS] = message;\n } else if (message.type === \"DISPATCH\" && ((_c = message.payload) == null ? void 0 : _c.type) === \"COMMIT\") {\n devtools2.init(snapshot(proxyObject));\n } else if (message.type === \"DISPATCH\" && ((_d = message.payload) == null ? void 0 : _d.type) === \"IMPORT_STATE\") {\n const actions = (_e = message.payload.nextLiftedState) == null ? void 0 : _e.actionsById;\n const computedStates = ((_f = message.payload.nextLiftedState) == null ? void 0 : _f.computedStates) || [];\n isTimeTraveling = true;\n computedStates.forEach(({ state }, index) => {\n const action = actions[index] || \"No action found\";\n Object.assign(proxyObject, state);\n if (index === 0) {\n devtools2.init(snapshot(proxyObject));\n } else {\n devtools2.send(action, snapshot(proxyObject));\n }\n });\n }\n });\n devtools2.init(snapshot(proxyObject));\n return () => {\n unsub1();\n unsub2 == null ? void 0 : unsub2();\n };\n}\n\nfunction addComputed_DEPRECATED(proxyObject, computedFns_FAKE, targetObject = proxyObject) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"addComputed is deprecated. Please consider using `derive`. Falling back to emulation with derive. https://github.com/pmndrs/valtio/pull/201\"\n );\n }\n const derivedFns = {};\n Object.keys(computedFns_FAKE).forEach((key) => {\n derivedFns[key] = (get) => computedFns_FAKE[key](get(proxyObject));\n });\n return derive(derivedFns, { proxy: targetObject });\n}\n\nfunction proxyWithComputed_DEPRECATED(initialObject, computedFns) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n 'proxyWithComputed is deprecated. Please follow \"Computed Properties\" guide in docs.'\n );\n }\n Object.keys(computedFns).forEach((key) => {\n if (Object.getOwnPropertyDescriptor(initialObject, key)) {\n throw new Error(\"object property already defined\");\n }\n const computedFn = computedFns[key];\n const { get, set } = typeof computedFn === \"function\" ? { get: computedFn } : computedFn;\n const desc = {};\n desc.get = () => get(snapshot(proxyObject));\n if (set) {\n desc.set = (newValue) => set(proxyObject, newValue);\n }\n Object.defineProperty(initialObject, key, desc);\n });\n const proxyObject = proxy(initialObject);\n return proxyObject;\n}\n\nconst isObject = (x) => typeof x === \"object\" && x !== null;\nlet refSet;\nconst deepClone = (obj) => {\n if (!refSet) {\n refSet = unstable_buildProxyFunction()[2];\n }\n if (!isObject(obj) || refSet.has(obj)) {\n return obj;\n }\n const baseObject = Array.isArray(obj) ? [] : Object.create(Object.getPrototypeOf(obj));\n Reflect.ownKeys(obj).forEach((key) => {\n baseObject[key] = deepClone(obj[key]);\n });\n return baseObject;\n};\nfunction proxyWithHistory_DEPRECATED(initialValue, skipSubscribe = false) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n 'proxyWithHistory is deprecated. Please use the \"valtio-history\" package; refer to the docs'\n );\n }\n const proxyObject = proxy({\n value: initialValue,\n history: ref({\n wip: void 0,\n // to avoid infinite loop\n snapshots: [],\n index: -1\n }),\n clone: deepClone,\n canUndo: () => proxyObject.history.index > 0,\n undo: () => {\n if (proxyObject.canUndo()) {\n proxyObject.value = proxyObject.history.wip = proxyObject.clone(\n proxyObject.history.snapshots[--proxyObject.history.index]\n );\n }\n },\n canRedo: () => proxyObject.history.index < proxyObject.history.snapshots.length - 1,\n redo: () => {\n if (proxyObject.canRedo()) {\n proxyObject.value = proxyObject.history.wip = proxyObject.clone(\n proxyObject.history.snapshots[++proxyObject.history.index]\n );\n }\n },\n saveHistory: () => {\n proxyObject.history.snapshots.splice(proxyObject.history.index + 1);\n proxyObject.history.snapshots.push(snapshot(proxyObject).value);\n ++proxyObject.history.index;\n },\n subscribe: () => subscribe(proxyObject, (ops) => {\n if (ops.every(\n (op) => op[1][0] === \"value\" && (op[0] !== \"set\" || op[2] !== proxyObject.history.wip)\n )) {\n proxyObject.saveHistory();\n }\n })\n });\n proxyObject.saveHistory();\n if (!skipSubscribe) {\n proxyObject.subscribe();\n }\n return proxyObject;\n}\n\nfunction proxySet(initialValues) {\n const set = proxy({\n data: Array.from(new Set(initialValues)),\n has(value) {\n return this.data.indexOf(value) !== -1;\n },\n add(value) {\n let hasProxy = false;\n if (typeof value === \"object\" && value !== null) {\n hasProxy = this.data.indexOf(proxy(value)) !== -1;\n }\n if (this.data.indexOf(value) === -1 && !hasProxy) {\n this.data.push(value);\n }\n return this;\n },\n delete(value) {\n const index = this.data.indexOf(value);\n if (index === -1) {\n return false;\n }\n this.data.splice(index, 1);\n return true;\n },\n clear() {\n this.data.splice(0);\n },\n get size() {\n return this.data.length;\n },\n forEach(cb) {\n this.data.forEach((value) => {\n cb(value, value, this);\n });\n },\n get [Symbol.toStringTag]() {\n return \"Set\";\n },\n toJSON() {\n return new Set(this.data);\n },\n [Symbol.iterator]() {\n return this.data[Symbol.iterator]();\n },\n values() {\n return this.data.values();\n },\n keys() {\n return this.data.values();\n },\n entries() {\n return new Set(this.data).entries();\n }\n });\n Object.defineProperties(set, {\n data: {\n enumerable: false\n },\n size: {\n enumerable: false\n },\n toJSON: {\n enumerable: false\n }\n });\n Object.seal(set);\n return set;\n}\n\nfunction proxyMap(entries) {\n const map = proxy({\n data: Array.from(entries || []),\n has(key) {\n return this.data.some((p) => p[0] === key);\n },\n set(key, value) {\n const record = this.data.find((p) => p[0] === key);\n if (record) {\n record[1] = value;\n } else {\n this.data.push([key, value]);\n }\n return this;\n },\n get(key) {\n var _a;\n return (_a = this.data.find((p) => p[0] === key)) == null ? void 0 : _a[1];\n },\n delete(key) {\n const index = this.data.findIndex((p) => p[0] === key);\n if (index === -1) {\n return false;\n }\n this.data.splice(index, 1);\n return true;\n },\n clear() {\n this.data.splice(0);\n },\n get size() {\n return this.data.length;\n },\n toJSON() {\n return new Map(this.data);\n },\n forEach(cb) {\n this.data.forEach((p) => {\n cb(p[1], p[0], this);\n });\n },\n keys() {\n return this.data.map((p) => p[0]).values();\n },\n values() {\n return this.data.map((p) => p[1]).values();\n },\n entries() {\n return new Map(this.data).entries();\n },\n get [Symbol.toStringTag]() {\n return \"Map\";\n },\n [Symbol.iterator]() {\n return this.entries();\n }\n });\n Object.defineProperties(map, {\n data: {\n enumerable: false\n },\n size: {\n enumerable: false\n },\n toJSON: {\n enumerable: false\n }\n });\n Object.seal(map);\n return map;\n}\n\nexport { addComputed_DEPRECATED as addComputed, devtools, proxyMap, proxySet, proxyWithComputed_DEPRECATED as proxyWithComputed, proxyWithHistory_DEPRECATED as proxyWithHistory, subscribeKey, watch };\n","import {} from '@reown/appkit-common';\nconst SECURE_SITE = \n// eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n(typeof process !== 'undefined' && typeof process.env !== 'undefined'\n ? process.env['NEXT_PUBLIC_SECURE_SITE_ORIGIN']\n : undefined) || 'https://secure.walletconnect.org';\nexport const ONRAMP_PROVIDERS = [\n {\n label: 'Coinbase',\n name: 'coinbase',\n feeRange: '1-2%',\n url: '',\n supportedChains: ['eip155']\n },\n {\n label: 'Meld.io',\n name: 'meld',\n feeRange: '1-2%',\n url: 'https://meldcrypto.com',\n supportedChains: ['eip155', 'solana']\n }\n];\nexport const MELD_PUBLIC_KEY = 'WXETMuFUQmqqybHuRkSgxv:25B8LJHSfpG6LVjR2ytU5Cwh7Z4Sch2ocoU';\nexport const ConstantsUtil = {\n FOUR_MINUTES_MS: 240_000,\n TEN_SEC_MS: 10_000,\n FIVE_SEC_MS: 5_000,\n THREE_SEC_MS: 3_000,\n ONE_SEC_MS: 1_000,\n SECURE_SITE,\n SECURE_SITE_DASHBOARD: `${SECURE_SITE}/dashboard`,\n SECURE_SITE_FAVICON: `${SECURE_SITE}/images/favicon.png`,\n RESTRICTED_TIMEZONES: [\n 'ASIA/SHANGHAI',\n 'ASIA/URUMQI',\n 'ASIA/CHONGQING',\n 'ASIA/HARBIN',\n 'ASIA/KASHGAR',\n 'ASIA/MACAU',\n 'ASIA/HONG_KONG',\n 'ASIA/MACAO',\n 'ASIA/BEIJING',\n 'ASIA/HARBIN'\n ],\n /**\n * Network name to Coinbase Pay SDK chain name map object\n * @see supported chain names on Coinbase for Pay SDK: https://github.com/coinbase/cbpay-js/blob/d4bda2c05c4d5917c8db6a05476b603546046394/src/types/onramp.ts\n */\n WC_COINBASE_PAY_SDK_CHAINS: [\n 'ethereum',\n 'arbitrum',\n 'polygon',\n 'berachain',\n 'avalanche-c-chain',\n 'optimism',\n 'celo',\n 'base'\n ],\n WC_COINBASE_PAY_SDK_FALLBACK_CHAIN: 'ethereum',\n WC_COINBASE_PAY_SDK_CHAIN_NAME_MAP: {\n Ethereum: 'ethereum',\n 'Arbitrum One': 'arbitrum',\n Polygon: 'polygon',\n Berachain: 'berachain',\n Avalanche: 'avalanche-c-chain',\n 'OP Mainnet': 'optimism',\n Celo: 'celo',\n Base: 'base'\n },\n WC_COINBASE_ONRAMP_APP_ID: 'bf18c88d-495a-463b-b249-0b9d3656cf5e',\n SWAP_SUGGESTED_TOKENS: [\n 'ETH',\n 'UNI',\n '1INCH',\n 'AAVE',\n 'SOL',\n 'ADA',\n 'AVAX',\n 'DOT',\n 'LINK',\n 'NITRO',\n 'GAIA',\n 'MILK',\n 'TRX',\n 'NEAR',\n 'GNO',\n 'WBTC',\n 'DAI',\n 'WETH',\n 'USDC',\n 'USDT',\n 'ARB',\n 'BAL',\n 'BICO',\n 'CRV',\n 'ENS',\n 'MATIC',\n 'OP'\n ],\n SWAP_POPULAR_TOKENS: [\n 'ETH',\n 'UNI',\n '1INCH',\n 'AAVE',\n 'SOL',\n 'ADA',\n 'AVAX',\n 'DOT',\n 'LINK',\n 'NITRO',\n 'GAIA',\n 'MILK',\n 'TRX',\n 'NEAR',\n 'GNO',\n 'WBTC',\n 'DAI',\n 'WETH',\n 'USDC',\n 'USDT',\n 'ARB',\n 'BAL',\n 'BICO',\n 'CRV',\n 'ENS',\n 'MATIC',\n 'OP',\n 'METAL',\n 'DAI',\n 'CHAMP',\n 'WOLF',\n 'SALE',\n 'BAL',\n 'BUSD',\n 'MUST',\n 'BTCpx',\n 'ROUTE',\n 'HEX',\n 'WELT',\n 'amDAI',\n 'VSQ',\n 'VISION',\n 'AURUM',\n 'pSP',\n 'SNX',\n 'VC',\n 'LINK',\n 'CHP',\n 'amUSDT',\n 'SPHERE',\n 'FOX',\n 'GIDDY',\n 'GFC',\n 'OMEN',\n 'OX_OLD',\n 'DE',\n 'WNT'\n ],\n BALANCE_SUPPORTED_CHAINS: ['eip155', 'solana'],\n SWAP_SUPPORTED_NETWORKS: [\n // Ethereum'\n 'eip155:1',\n // Arbitrum One'\n 'eip155:42161',\n // Optimism'\n 'eip155:10',\n // ZKSync Era'\n 'eip155:324',\n // Base'\n 'eip155:8453',\n // BNB Smart Chain'\n 'eip155:56',\n // Polygon'\n 'eip155:137',\n // Gnosis'\n 'eip155:100',\n // Avalanche'\n 'eip155:43114',\n // Fantom'\n 'eip155:250',\n // Klaytn'\n 'eip155:8217',\n // Aurora\n 'eip155:1313161554'\n ],\n NAMES_SUPPORTED_CHAIN_NAMESPACES: ['eip155'],\n ONRAMP_SUPPORTED_CHAIN_NAMESPACES: ['eip155', 'solana'],\n ACTIVITY_ENABLED_CHAIN_NAMESPACES: ['eip155'],\n NATIVE_TOKEN_ADDRESS: {\n eip155: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',\n solana: 'So11111111111111111111111111111111111111111',\n polkadot: '0x',\n bip122: '0x',\n cosmos: '0x'\n },\n CONVERT_SLIPPAGE_TOLERANCE: 1,\n CONNECT_LABELS: {\n MOBILE: 'Open and continue in the wallet app',\n WEB: 'Open and continue in the wallet app'\n },\n SEND_SUPPORTED_NAMESPACES: ['eip155', 'solana'],\n DEFAULT_REMOTE_FEATURES: {\n swaps: ['1inch'],\n onramp: ['coinbase', 'meld'],\n email: true,\n socials: [\n 'google',\n 'x',\n 'discord',\n 'farcaster',\n 'github',\n 'apple',\n 'facebook'\n ],\n activity: true,\n reownBranding: true\n },\n DEFAULT_REMOTE_FEATURES_DISABLED: {\n email: false,\n socials: false,\n swaps: false,\n onramp: false,\n activity: false,\n reownBranding: false\n },\n DEFAULT_FEATURES: {\n receive: true,\n send: true,\n emailShowWallets: true,\n connectorTypeOrder: [\n 'walletConnect',\n 'recent',\n 'injected',\n 'featured',\n 'custom',\n 'external',\n 'recommended'\n ],\n analytics: true,\n allWallets: true,\n legalCheckbox: false,\n smartSessions: false,\n collapseWallets: false,\n walletFeaturesOrder: ['onramp', 'swaps', 'receive', 'send'],\n connectMethodsOrder: undefined,\n pay: false\n },\n DEFAULT_SOCIALS: [\n 'google',\n 'x',\n 'farcaster',\n 'discord',\n 'apple',\n 'github',\n 'facebook'\n ],\n DEFAULT_ACCOUNT_TYPES: {\n bip122: 'payment',\n eip155: 'smartAccount',\n polkadot: 'eoa',\n solana: 'eoa'\n },\n ADAPTER_TYPES: {\n UNIVERSAL: 'universal',\n SOLANA: 'solana',\n WAGMI: 'wagmi',\n ETHERS: 'ethers',\n ETHERS5: 'ethers5',\n BITCOIN: 'bitcoin'\n }\n};\n//# sourceMappingURL=ConstantsUtil.js.map","/* eslint-disable no-console */\nimport { SafeLocalStorage, SafeLocalStorageKeys, getSafeConnectorIdKey } from '@reown/appkit-common';\n// -- Utility -----------------------------------------------------------------\nexport const StorageUtil = {\n // Cache expiry in milliseconds\n cacheExpiry: {\n portfolio: 30000,\n nativeBalance: 30000,\n ens: 300000,\n identity: 300000\n },\n isCacheExpired(timestamp, cacheExpiry) {\n return Date.now() - timestamp > cacheExpiry;\n },\n getActiveNetworkProps() {\n const namespace = StorageUtil.getActiveNamespace();\n const caipNetworkId = StorageUtil.getActiveCaipNetworkId();\n const stringChainId = caipNetworkId ? caipNetworkId.split(':')[1] : undefined;\n // eslint-disable-next-line no-nested-ternary\n const chainId = stringChainId\n ? isNaN(Number(stringChainId))\n ? stringChainId\n : Number(stringChainId)\n : undefined;\n return {\n namespace,\n caipNetworkId,\n chainId\n };\n },\n setWalletConnectDeepLink({ name, href }) {\n try {\n SafeLocalStorage.setItem(SafeLocalStorageKeys.DEEPLINK_CHOICE, JSON.stringify({ href, name }));\n }\n catch {\n console.info('Unable to set WalletConnect deep link');\n }\n },\n getWalletConnectDeepLink() {\n try {\n const deepLink = SafeLocalStorage.getItem(SafeLocalStorageKeys.DEEPLINK_CHOICE);\n if (deepLink) {\n return JSON.parse(deepLink);\n }\n }\n catch {\n console.info('Unable to get WalletConnect deep link');\n }\n return undefined;\n },\n deleteWalletConnectDeepLink() {\n try {\n SafeLocalStorage.removeItem(SafeLocalStorageKeys.DEEPLINK_CHOICE);\n }\n catch {\n console.info('Unable to delete WalletConnect deep link');\n }\n },\n setActiveNamespace(namespace) {\n try {\n SafeLocalStorage.setItem(SafeLocalStorageKeys.ACTIVE_NAMESPACE, namespace);\n }\n catch {\n console.info('Unable to set active namespace');\n }\n },\n setActiveCaipNetworkId(caipNetworkId) {\n try {\n SafeLocalStorage.setItem(SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID, caipNetworkId);\n StorageUtil.setActiveNamespace(caipNetworkId.split(':')[0]);\n }\n catch {\n console.info('Unable to set active caip network id');\n }\n },\n getActiveCaipNetworkId() {\n try {\n return SafeLocalStorage.getItem(SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID);\n }\n catch {\n console.info('Unable to get active caip network id');\n return undefined;\n }\n },\n deleteActiveCaipNetworkId() {\n try {\n SafeLocalStorage.removeItem(SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID);\n }\n catch {\n console.info('Unable to delete active caip network id');\n }\n },\n deleteConnectedConnectorId(namespace) {\n try {\n const key = getSafeConnectorIdKey(namespace);\n SafeLocalStorage.removeItem(key);\n }\n catch {\n console.info('Unable to delete connected connector id');\n }\n },\n setAppKitRecent(wallet) {\n try {\n const recentWallets = StorageUtil.getRecentWallets();\n const exists = recentWallets.find(w => w.id === wallet.id);\n if (!exists) {\n recentWallets.unshift(wallet);\n if (recentWallets.length > 2) {\n recentWallets.pop();\n }\n SafeLocalStorage.setItem(SafeLocalStorageKeys.RECENT_WALLETS, JSON.stringify(recentWallets));\n }\n }\n catch {\n console.info('Unable to set AppKit recent');\n }\n },\n getRecentWallets() {\n try {\n const recent = SafeLocalStorage.getItem(SafeLocalStorageKeys.RECENT_WALLETS);\n return recent ? JSON.parse(recent) : [];\n }\n catch {\n console.info('Unable to get AppKit recent');\n }\n return [];\n },\n setConnectedConnectorId(namespace, connectorId) {\n try {\n const key = getSafeConnectorIdKey(namespace);\n SafeLocalStorage.setItem(key, connectorId);\n }\n catch {\n console.info('Unable to set Connected Connector Id');\n }\n },\n getActiveNamespace() {\n try {\n const activeNamespace = SafeLocalStorage.getItem(SafeLocalStorageKeys.ACTIVE_NAMESPACE);\n return activeNamespace;\n }\n catch {\n console.info('Unable to get active namespace');\n }\n return undefined;\n },\n getConnectedConnectorId(namespace) {\n if (!namespace) {\n return undefined;\n }\n try {\n const key = getSafeConnectorIdKey(namespace);\n return SafeLocalStorage.getItem(key);\n }\n catch (e) {\n console.info('Unable to get connected connector id in namespace ', namespace);\n }\n return undefined;\n },\n setConnectedSocialProvider(socialProvider) {\n try {\n SafeLocalStorage.setItem(SafeLocalStorageKeys.CONNECTED_SOCIAL, socialProvider);\n }\n catch {\n console.info('Unable to set connected social provider');\n }\n },\n getConnectedSocialProvider() {\n try {\n return SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTED_SOCIAL);\n }\n catch {\n console.info('Unable to get connected social provider');\n }\n return undefined;\n },\n deleteConnectedSocialProvider() {\n try {\n SafeLocalStorage.removeItem(SafeLocalStorageKeys.CONNECTED_SOCIAL);\n }\n catch {\n console.info('Unable to delete connected social provider');\n }\n },\n getConnectedSocialUsername() {\n try {\n return SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTED_SOCIAL_USERNAME);\n }\n catch {\n console.info('Unable to get connected social username');\n }\n return undefined;\n },\n getStoredActiveCaipNetworkId() {\n const storedCaipNetworkId = SafeLocalStorage.getItem(SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID);\n const networkId = storedCaipNetworkId?.split(':')?.[1];\n return networkId;\n },\n setConnectionStatus(status) {\n try {\n SafeLocalStorage.setItem(SafeLocalStorageKeys.CONNECTION_STATUS, status);\n }\n catch {\n console.info('Unable to set connection status');\n }\n },\n getConnectionStatus() {\n try {\n return SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTION_STATUS);\n }\n catch {\n return undefined;\n }\n },\n getConnectedNamespaces() {\n try {\n const namespaces = SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTED_NAMESPACES);\n if (!namespaces?.length) {\n return [];\n }\n return namespaces.split(',');\n }\n catch {\n return [];\n }\n },\n setConnectedNamespaces(namespaces) {\n try {\n const uniqueNamespaces = Array.from(new Set(namespaces));\n SafeLocalStorage.setItem(SafeLocalStorageKeys.CONNECTED_NAMESPACES, uniqueNamespaces.join(','));\n }\n catch {\n console.info('Unable to set namespaces in storage');\n }\n },\n addConnectedNamespace(namespace) {\n try {\n const namespaces = StorageUtil.getConnectedNamespaces();\n if (!namespaces.includes(namespace)) {\n namespaces.push(namespace);\n StorageUtil.setConnectedNamespaces(namespaces);\n }\n }\n catch {\n console.info('Unable to add connected namespace');\n }\n },\n removeConnectedNamespace(namespace) {\n try {\n const namespaces = StorageUtil.getConnectedNamespaces();\n const index = namespaces.indexOf(namespace);\n if (index > -1) {\n namespaces.splice(index, 1);\n StorageUtil.setConnectedNamespaces(namespaces);\n }\n }\n catch {\n console.info('Unable to remove connected namespace');\n }\n },\n getTelegramSocialProvider() {\n try {\n return SafeLocalStorage.getItem(SafeLocalStorageKeys.TELEGRAM_SOCIAL_PROVIDER);\n }\n catch {\n console.info('Unable to get telegram social provider');\n return null;\n }\n },\n setTelegramSocialProvider(socialProvider) {\n try {\n SafeLocalStorage.setItem(SafeLocalStorageKeys.TELEGRAM_SOCIAL_PROVIDER, socialProvider);\n }\n catch {\n console.info('Unable to set telegram social provider');\n }\n },\n removeTelegramSocialProvider() {\n try {\n SafeLocalStorage.removeItem(SafeLocalStorageKeys.TELEGRAM_SOCIAL_PROVIDER);\n }\n catch {\n console.info('Unable to remove telegram social provider');\n }\n },\n getBalanceCache() {\n let cache = {};\n try {\n const result = SafeLocalStorage.getItem(SafeLocalStorageKeys.PORTFOLIO_CACHE);\n cache = result ? JSON.parse(result) : {};\n }\n catch {\n console.info('Unable to get balance cache');\n }\n return cache;\n },\n removeAddressFromBalanceCache(caipAddress) {\n try {\n const cache = StorageUtil.getBalanceCache();\n SafeLocalStorage.setItem(SafeLocalStorageKeys.PORTFOLIO_CACHE, JSON.stringify({ ...cache, [caipAddress]: undefined }));\n }\n catch {\n console.info('Unable to remove address from balance cache', caipAddress);\n }\n },\n getBalanceCacheForCaipAddress(caipAddress) {\n try {\n const cache = StorageUtil.getBalanceCache();\n const balanceCache = cache[caipAddress];\n // We want to discard cache if it's older than the cache expiry\n if (balanceCache &&\n !this.isCacheExpired(balanceCache.timestamp, this.cacheExpiry.portfolio)) {\n return balanceCache.balance;\n }\n StorageUtil.removeAddressFromBalanceCache(caipAddress);\n }\n catch {\n console.info('Unable to get balance cache for address', caipAddress);\n }\n return undefined;\n },\n updateBalanceCache(params) {\n try {\n const cache = StorageUtil.getBalanceCache();\n cache[params.caipAddress] = params;\n SafeLocalStorage.setItem(SafeLocalStorageKeys.PORTFOLIO_CACHE, JSON.stringify(cache));\n }\n catch {\n console.info('Unable to update balance cache', params);\n }\n },\n getNativeBalanceCache() {\n let cache = {};\n try {\n const result = SafeLocalStorage.getItem(SafeLocalStorageKeys.NATIVE_BALANCE_CACHE);\n cache = result ? JSON.parse(result) : {};\n }\n catch {\n console.info('Unable to get balance cache');\n }\n return cache;\n },\n removeAddressFromNativeBalanceCache(caipAddress) {\n try {\n const cache = StorageUtil.getBalanceCache();\n SafeLocalStorage.setItem(SafeLocalStorageKeys.NATIVE_BALANCE_CACHE, JSON.stringify({ ...cache, [caipAddress]: undefined }));\n }\n catch {\n console.info('Unable to remove address from balance cache', caipAddress);\n }\n },\n getNativeBalanceCacheForCaipAddress(caipAddress) {\n try {\n const cache = StorageUtil.getNativeBalanceCache();\n const nativeBalanceCache = cache[caipAddress];\n // We want to discard cache if it's older than the cache expiry\n if (nativeBalanceCache &&\n !this.isCacheExpired(nativeBalanceCache.timestamp, this.cacheExpiry.nativeBalance)) {\n return nativeBalanceCache;\n }\n console.info('Discarding cache for address', caipAddress);\n StorageUtil.removeAddressFromBalanceCache(caipAddress);\n }\n catch {\n console.info('Unable to get balance cache for address', caipAddress);\n }\n return undefined;\n },\n updateNativeBalanceCache(params) {\n try {\n const cache = StorageUtil.getNativeBalanceCache();\n cache[params.caipAddress] = params;\n SafeLocalStorage.setItem(SafeLocalStorageKeys.NATIVE_BALANCE_CACHE, JSON.stringify(cache));\n }\n catch {\n console.info('Unable to update balance cache', params);\n }\n },\n getEnsCache() {\n let cache = {};\n try {\n const result = SafeLocalStorage.getItem(SafeLocalStorageKeys.ENS_CACHE);\n cache = result ? JSON.parse(result) : {};\n }\n catch {\n console.info('Unable to get ens name cache');\n }\n return cache;\n },\n getEnsFromCacheForAddress(address) {\n try {\n const cache = StorageUtil.getEnsCache();\n const ensCache = cache[address];\n // We want to discard cache if it's older than the cache expiry\n if (ensCache && !this.isCacheExpired(ensCache.timestamp, this.cacheExpiry.ens)) {\n return ensCache.ens;\n }\n StorageUtil.removeEnsFromCache(address);\n }\n catch {\n console.info('Unable to get ens name from cache', address);\n }\n return undefined;\n },\n updateEnsCache(params) {\n try {\n const cache = StorageUtil.getEnsCache();\n cache[params.address] = params;\n SafeLocalStorage.setItem(SafeLocalStorageKeys.ENS_CACHE, JSON.stringify(cache));\n }\n catch {\n console.info('Unable to update ens name cache', params);\n }\n },\n removeEnsFromCache(address) {\n try {\n const cache = StorageUtil.getEnsCache();\n SafeLocalStorage.setItem(SafeLocalStorageKeys.ENS_CACHE, JSON.stringify({ ...cache, [address]: undefined }));\n }\n catch {\n console.info('Unable to remove ens name from cache', address);\n }\n },\n getIdentityCache() {\n let cache = {};\n try {\n const result = SafeLocalStorage.getItem(SafeLocalStorageKeys.IDENTITY_CACHE);\n cache = result ? JSON.parse(result) : {};\n }\n catch {\n console.info('Unable to get identity cache');\n }\n return cache;\n },\n getIdentityFromCacheForAddress(address) {\n try {\n const cache = StorageUtil.getIdentityCache();\n const identityCache = cache[address];\n // We want to discard cache if it's older than the cache expiry\n if (identityCache &&\n !this.isCacheExpired(identityCache.timestamp, this.cacheExpiry.identity)) {\n return identityCache.identity;\n }\n StorageUtil.removeIdentityFromCache(address);\n }\n catch {\n console.info('Unable to get identity from cache', address);\n }\n return undefined;\n },\n updateIdentityCache(params) {\n try {\n const cache = StorageUtil.getIdentityCache();\n cache[params.address] = {\n identity: params.identity,\n timestamp: params.timestamp\n };\n SafeLocalStorage.setItem(SafeLocalStorageKeys.IDENTITY_CACHE, JSON.stringify(cache));\n }\n catch {\n console.info('Unable to update identity cache', params);\n }\n },\n removeIdentityFromCache(address) {\n try {\n const cache = StorageUtil.getIdentityCache();\n SafeLocalStorage.setItem(SafeLocalStorageKeys.IDENTITY_CACHE, JSON.stringify({ ...cache, [address]: undefined }));\n }\n catch {\n console.info('Unable to remove identity from cache', address);\n }\n },\n clearAddressCache() {\n try {\n SafeLocalStorage.removeItem(SafeLocalStorageKeys.PORTFOLIO_CACHE);\n SafeLocalStorage.removeItem(SafeLocalStorageKeys.NATIVE_BALANCE_CACHE);\n SafeLocalStorage.removeItem(SafeLocalStorageKeys.ENS_CACHE);\n SafeLocalStorage.removeItem(SafeLocalStorageKeys.IDENTITY_CACHE);\n }\n catch {\n console.info('Unable to clear address cache');\n }\n },\n setPreferredAccountTypes(accountTypes) {\n try {\n SafeLocalStorage.setItem(SafeLocalStorageKeys.PREFERRED_ACCOUNT_TYPES, JSON.stringify(accountTypes));\n }\n catch {\n console.info('Unable to set preferred account types', accountTypes);\n }\n },\n getPreferredAccountTypes() {\n try {\n const result = SafeLocalStorage.getItem(SafeLocalStorageKeys.PREFERRED_ACCOUNT_TYPES);\n if (!result) {\n return {};\n }\n return JSON.parse(result);\n }\n catch {\n console.info('Unable to get preferred account types');\n }\n return {};\n },\n setConnections(connections, chainNamespace) {\n try {\n const newConnections = {\n ...StorageUtil.getConnections(),\n [chainNamespace]: connections\n };\n SafeLocalStorage.setItem(SafeLocalStorageKeys.CONNECTIONS, JSON.stringify(newConnections));\n }\n catch (error) {\n console.error('Unable to sync connections to storage', error);\n }\n },\n getConnections() {\n try {\n const connectionsStorage = SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTIONS);\n if (!connectionsStorage) {\n return {};\n }\n return JSON.parse(connectionsStorage);\n }\n catch (error) {\n console.error('Unable to get connections from storage', error);\n return {};\n }\n }\n};\n//# sourceMappingURL=StorageUtil.js.map","import { ConstantsUtil as CommonConstants } from '@reown/appkit-common';\nimport { ConstantsUtil } from './ConstantsUtil.js';\nimport { StorageUtil } from './StorageUtil.js';\nexport const CoreHelperUtil = {\n isMobile() {\n if (this.isClient()) {\n return Boolean((typeof window?.matchMedia === 'function' &&\n window?.matchMedia('(pointer:coarse)')?.matches) ||\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent));\n }\n return false;\n },\n checkCaipNetwork(network, networkName = '') {\n return network?.caipNetworkId.toLocaleLowerCase().includes(networkName.toLowerCase());\n },\n isAndroid() {\n if (!this.isMobile()) {\n return false;\n }\n const ua = window?.navigator.userAgent.toLowerCase();\n return CoreHelperUtil.isMobile() && ua.includes('android');\n },\n isIos() {\n if (!this.isMobile()) {\n return false;\n }\n const ua = window?.navigator.userAgent.toLowerCase();\n return ua.includes('iphone') || ua.includes('ipad');\n },\n isSafari() {\n if (!this.isClient()) {\n return false;\n }\n const ua = window?.navigator.userAgent.toLowerCase();\n return ua.includes('safari');\n },\n isClient() {\n return typeof window !== 'undefined';\n },\n isPairingExpired(expiry) {\n return expiry ? expiry - Date.now() <= ConstantsUtil.TEN_SEC_MS : true;\n },\n isAllowedRetry(lastRetry, differenceMs = ConstantsUtil.ONE_SEC_MS) {\n return Date.now() - lastRetry >= differenceMs;\n },\n copyToClopboard(text) {\n navigator.clipboard.writeText(text);\n },\n isIframe() {\n try {\n return window?.self !== window?.top;\n }\n catch (e) {\n return false;\n }\n },\n isSafeApp() {\n if (CoreHelperUtil.isClient() && window.self !== window.top) {\n try {\n const ancestor = window?.location?.ancestorOrigins?.[0];\n const safeAppUrl = 'https://app.safe.global';\n if (ancestor) {\n const ancestorUrl = new URL(ancestor);\n const safeUrl = new URL(safeAppUrl);\n return ancestorUrl.hostname === safeUrl.hostname;\n }\n }\n catch {\n return false;\n }\n }\n return false;\n },\n getPairingExpiry() {\n return Date.now() + ConstantsUtil.FOUR_MINUTES_MS;\n },\n getNetworkId(caipAddress) {\n return caipAddress?.split(':')[1];\n },\n getPlainAddress(caipAddress) {\n return caipAddress?.split(':')[2];\n },\n async wait(milliseconds) {\n return new Promise(resolve => {\n setTimeout(resolve, milliseconds);\n });\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n debounce(func, timeout = 500) {\n let timer = undefined;\n return (...args) => {\n function next() {\n func(...args);\n }\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(next, timeout);\n };\n },\n isHttpUrl(url) {\n return url.startsWith('http://') || url.startsWith('https://');\n },\n formatNativeUrl(appUrl, wcUri, universalLink = null) {\n if (CoreHelperUtil.isHttpUrl(appUrl)) {\n return this.formatUniversalUrl(appUrl, wcUri);\n }\n let safeAppUrl = appUrl;\n let safeUniversalLink = universalLink;\n if (!safeAppUrl.includes('://')) {\n safeAppUrl = appUrl.replaceAll('/', '').replaceAll(':', '');\n safeAppUrl = `${safeAppUrl}://`;\n }\n if (!safeAppUrl.endsWith('/')) {\n safeAppUrl = `${safeAppUrl}/`;\n }\n if (safeUniversalLink && !safeUniversalLink?.endsWith('/')) {\n safeUniversalLink = `${safeUniversalLink}/`;\n }\n // Android deeplinks in tg context require the uri to be encoded twice\n if (this.isTelegram() && this.isAndroid()) {\n // eslint-disable-next-line no-param-reassign\n wcUri = encodeURIComponent(wcUri);\n }\n const encodedWcUrl = encodeURIComponent(wcUri);\n return {\n redirect: `${safeAppUrl}wc?uri=${encodedWcUrl}`,\n redirectUniversalLink: safeUniversalLink\n ? `${safeUniversalLink}wc?uri=${encodedWcUrl}`\n : undefined,\n href: safeAppUrl\n };\n },\n formatUniversalUrl(appUrl, wcUri) {\n if (!CoreHelperUtil.isHttpUrl(appUrl)) {\n return this.formatNativeUrl(appUrl, wcUri);\n }\n let safeAppUrl = appUrl;\n if (!safeAppUrl.endsWith('/')) {\n safeAppUrl = `${safeAppUrl}/`;\n }\n const encodedWcUrl = encodeURIComponent(wcUri);\n return {\n redirect: `${safeAppUrl}wc?uri=${encodedWcUrl}`,\n href: safeAppUrl\n };\n },\n getOpenTargetForPlatform(target) {\n if (target === 'popupWindow') {\n return target;\n }\n // Only '_blank' deeplinks work in Telegram context\n if (this.isTelegram()) {\n // But for social login, we need to load the page in the same context\n if (StorageUtil.getTelegramSocialProvider()) {\n return '_top';\n }\n return '_blank';\n }\n return target;\n },\n openHref(href, target, features) {\n window?.open(href, this.getOpenTargetForPlatform(target), features || 'noreferrer noopener');\n },\n returnOpenHref(href, target, features) {\n return window?.open(href, this.getOpenTargetForPlatform(target), features || 'noreferrer noopener');\n },\n isTelegram() {\n return (typeof window !== 'undefined' &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (Boolean(window.TelegramWebviewProxy) ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Boolean(window.Telegram) ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Boolean(window.TelegramWebviewProxyProto)));\n },\n isPWA() {\n if (typeof window === 'undefined') {\n return false;\n }\n const isStandaloneDisplayMode = window.matchMedia?.('(display-mode: standalone)')?.matches;\n const isIOSStandalone = window?.navigator?.standalone;\n return Boolean(isStandaloneDisplayMode || isIOSStandalone);\n },\n async preloadImage(src) {\n const imagePromise = new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = resolve;\n image.onerror = reject;\n image.crossOrigin = 'anonymous';\n image.src = src;\n });\n return Promise.race([imagePromise, CoreHelperUtil.wait(2000)]);\n },\n formatBalance(balance, symbol) {\n let formattedBalance = '0.000';\n if (typeof balance === 'string') {\n const number = Number(balance);\n if (number) {\n const formattedValue = Math.floor(number * 1000) / 1000;\n if (formattedValue) {\n formattedBalance = formattedValue.toString();\n }\n }\n }\n return `${formattedBalance}${symbol ? ` ${symbol}` : ''}`;\n },\n formatBalance2(balance, symbol) {\n let formattedBalance = undefined;\n if (balance === '0') {\n formattedBalance = '0';\n }\n else if (typeof balance === 'string') {\n const number = Number(balance);\n if (number) {\n formattedBalance = number.toString().match(/^-?\\d+(?:\\.\\d{0,3})?/u)?.[0];\n }\n }\n return {\n value: formattedBalance ?? '0',\n rest: formattedBalance === '0' ? '000' : '',\n symbol\n };\n },\n getApiUrl() {\n return CommonConstants.W3M_API_URL;\n },\n getBlockchainApiUrl() {\n return CommonConstants.BLOCKCHAIN_API_RPC_URL;\n },\n getAnalyticsUrl() {\n return CommonConstants.PULSE_API_URL;\n },\n getUUID() {\n if (crypto?.randomUUID) {\n return crypto.randomUUID();\n }\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/gu, c => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parseError(error) {\n if (typeof error === 'string') {\n return error;\n }\n else if (typeof error?.issues?.[0]?.message === 'string') {\n return error.issues[0].message;\n }\n else if (error instanceof Error) {\n return error.message;\n }\n return 'Unknown error';\n },\n sortRequestedNetworks(approvedIds, requestedNetworks = []) {\n const approvedIndexMap = {};\n if (requestedNetworks && approvedIds) {\n approvedIds.forEach((id, index) => {\n approvedIndexMap[id] = index;\n });\n requestedNetworks.sort((a, b) => {\n const indexA = approvedIndexMap[a.id];\n const indexB = approvedIndexMap[b.id];\n if (indexA !== undefined && indexB !== undefined) {\n return indexA - indexB;\n }\n else if (indexA !== undefined) {\n return -1;\n }\n else if (indexB !== undefined) {\n return 1;\n }\n return 0;\n });\n }\n return requestedNetworks;\n },\n calculateBalance(array) {\n let sum = 0;\n for (const item of array) {\n sum += item.value ?? 0;\n }\n return sum;\n },\n formatTokenBalance(number) {\n const roundedNumber = number.toFixed(2);\n const [dollars, pennies] = roundedNumber.split('.');\n return { dollars, pennies };\n },\n isAddress(address, chain = 'eip155') {\n switch (chain) {\n case 'eip155':\n if (!/^(?:0x)?[0-9a-f]{40}$/iu.test(address)) {\n return false;\n }\n else if (/^(?:0x)?[0-9a-f]{40}$/iu.test(address) ||\n /^(?:0x)?[0-9A-F]{40}$/iu.test(address)) {\n return true;\n }\n return false;\n case 'solana':\n return /[1-9A-HJ-NP-Za-km-z]{32,44}$/iu.test(address);\n default:\n return false;\n }\n },\n uniqueBy(arr, key) {\n const set = new Set();\n return arr.filter(item => {\n const keyValue = item[key];\n if (set.has(keyValue)) {\n return false;\n }\n set.add(keyValue);\n return true;\n });\n },\n generateSdkVersion(adapters, platform, version) {\n const hasNoAdapters = adapters.length === 0;\n const adapterNames = (hasNoAdapters\n ? ConstantsUtil.ADAPTER_TYPES.UNIVERSAL\n : adapters.map(adapter => adapter.adapterType).join(','));\n return `${platform}-${adapterNames}-${version}`;\n },\n // eslint-disable-next-line max-params\n createAccount(namespace, address, type, publicKey, path) {\n return {\n namespace,\n address,\n type,\n publicKey,\n path\n };\n },\n isCaipAddress(address) {\n if (typeof address !== 'string') {\n return false;\n }\n const sections = address.split(':');\n const namespace = sections[0];\n return (sections.filter(Boolean).length === 3 &&\n namespace in CommonConstants.CHAIN_NAME_MAP);\n },\n isMac() {\n const ua = window?.navigator.userAgent.toLowerCase();\n return ua.includes('macintosh') && !ua.includes('safari');\n },\n formatTelegramSocialLoginUrl(url) {\n const valueToInject = `--${encodeURIComponent(window?.location.href)}`;\n const paramToInject = 'state=';\n const parsedUrl = new URL(url);\n if (parsedUrl.host === 'auth.magic.link') {\n const providerParam = 'provider_authorization_url=';\n const providerUrl = url.substring(url.indexOf(providerParam) + providerParam.length);\n const resultUrl = this.injectIntoUrl(decodeURIComponent(providerUrl), paramToInject, valueToInject);\n return url.replace(providerUrl, encodeURIComponent(resultUrl));\n }\n return this.injectIntoUrl(url, paramToInject, valueToInject);\n },\n injectIntoUrl(url, key, appendString) {\n // Find the position of \"key\" e.g. \"state=\" in the URL\n const keyIndex = url.indexOf(key);\n if (keyIndex === -1) {\n throw new Error(`${key} parameter not found in the URL: ${url}`);\n }\n // Find the position of the next \"&\" after \"key\"\n const keyEndIndex = url.indexOf('&', keyIndex);\n const keyLength = key.length;\n // If there is no \"&\" after key, it means \"key\" is the last parameter\n // eslint-disable-next-line no-negated-condition\n const keyParamEnd = keyEndIndex !== -1 ? keyEndIndex : url.length;\n // Extract the part of the URL before the key value\n const beforeKeyValue = url.substring(0, keyIndex + keyLength);\n // Extract the current key value\n const currentKeyValue = url.substring(keyIndex + keyLength, keyParamEnd);\n // Extract the part of the URL after the key value\n const afterKeyValue = url.substring(keyEndIndex);\n // Append the new string to the key value\n const newKeyValue = currentKeyValue + appendString;\n // Reconstruct the URL with the appended key value\n const newUrl = beforeKeyValue + newKeyValue + afterKeyValue;\n return newUrl;\n }\n};\n//# sourceMappingURL=CoreHelperUtil.js.map","async function fetchData(...args) {\n const response = await fetch(...args);\n if (!response.ok) {\n // Create error object and reject if not a 2xx response code\n const err = new Error(`HTTP status code: ${response.status}`, {\n cause: response\n });\n throw err;\n }\n return response;\n}\n// -- Utility --------------------------------------------------------------------\nexport class FetchUtil {\n constructor({ baseUrl, clientId }) {\n this.baseUrl = baseUrl;\n this.clientId = clientId;\n }\n async get({ headers, signal, cache, ...args }) {\n const url = this.createUrl(args);\n const response = await fetchData(url, { method: 'GET', headers, signal, cache });\n return response.json();\n }\n async getBlob({ headers, signal, ...args }) {\n const url = this.createUrl(args);\n const response = await fetchData(url, { method: 'GET', headers, signal });\n return response.blob();\n }\n async post({ body, headers, signal, ...args }) {\n const url = this.createUrl(args);\n const response = await fetchData(url, {\n method: 'POST',\n headers,\n body: body ? JSON.stringify(body) : undefined,\n signal\n });\n return response.json();\n }\n async put({ body, headers, signal, ...args }) {\n const url = this.createUrl(args);\n const response = await fetchData(url, {\n method: 'PUT',\n headers,\n body: body ? JSON.stringify(body) : undefined,\n signal\n });\n return response.json();\n }\n async delete({ body, headers, signal, ...args }) {\n const url = this.createUrl(args);\n const response = await fetchData(url, {\n method: 'DELETE',\n headers,\n body: body ? JSON.stringify(body) : undefined,\n signal\n });\n return response.json();\n }\n createUrl({ path, params }) {\n const url = new URL(path, this.baseUrl);\n if (params) {\n Object.entries(params).forEach(([key, value]) => {\n if (value) {\n url.searchParams.append(key, value);\n }\n });\n }\n if (this.clientId) {\n url.searchParams.append('clientId', this.clientId);\n }\n return url;\n }\n}\n//# sourceMappingURL=FetchUtil.js.map","import { ConstantsUtil } from './ConstantsUtil.js';\nimport { CoreHelperUtil } from './CoreHelperUtil.js';\nexport const OptionsUtil = {\n getFeatureValue(key, features) {\n const optionValue = features?.[key];\n if (optionValue === undefined) {\n return ConstantsUtil.DEFAULT_FEATURES[key];\n }\n return optionValue;\n },\n filterSocialsByPlatform(socials) {\n if (!socials || !socials.length) {\n return socials;\n }\n if (CoreHelperUtil.isTelegram()) {\n if (CoreHelperUtil.isIos()) {\n return socials.filter(s => s !== 'google');\n }\n if (CoreHelperUtil.isMac()) {\n return socials.filter(s => s !== 'x');\n }\n if (CoreHelperUtil.isAndroid()) {\n return socials.filter(s => !['facebook', 'x'].includes(s));\n }\n }\n return socials;\n }\n};\n//# sourceMappingURL=OptionsUtil.js.map","import { proxy, snapshot } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { ConstantsUtil } from '../utils/ConstantsUtil.js';\nimport { OptionsUtil } from '../utils/OptionsUtil.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n features: ConstantsUtil.DEFAULT_FEATURES,\n projectId: '',\n sdkType: 'appkit',\n sdkVersion: 'html-wagmi-undefined',\n defaultAccountTypes: ConstantsUtil.DEFAULT_ACCOUNT_TYPES,\n enableNetworkSwitch: true,\n experimental_preferUniversalLinks: false,\n remoteFeatures: {}\n});\n// -- Controller ---------------------------------------- //\nexport const OptionsController = {\n state,\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n setOptions(options) {\n Object.assign(state, options);\n },\n setRemoteFeatures(remoteFeatures) {\n if (!remoteFeatures) {\n return;\n }\n const newRemoteFeatures = { ...state.remoteFeatures, ...remoteFeatures };\n state.remoteFeatures = newRemoteFeatures;\n if (state.remoteFeatures?.socials) {\n state.remoteFeatures.socials = OptionsUtil.filterSocialsByPlatform(state.remoteFeatures.socials);\n }\n },\n setFeatures(features) {\n if (!features) {\n return;\n }\n if (!state.features) {\n state.features = ConstantsUtil.DEFAULT_FEATURES;\n }\n const newFeatures = { ...state.features, ...features };\n state.features = newFeatures;\n },\n setProjectId(projectId) {\n state.projectId = projectId;\n },\n setCustomRpcUrls(customRpcUrls) {\n state.customRpcUrls = customRpcUrls;\n },\n setAllWallets(allWallets) {\n state.allWallets = allWallets;\n },\n setIncludeWalletIds(includeWalletIds) {\n state.includeWalletIds = includeWalletIds;\n },\n setExcludeWalletIds(excludeWalletIds) {\n state.excludeWalletIds = excludeWalletIds;\n },\n setFeaturedWalletIds(featuredWalletIds) {\n state.featuredWalletIds = featuredWalletIds;\n },\n setTokens(tokens) {\n state.tokens = tokens;\n },\n setTermsConditionsUrl(termsConditionsUrl) {\n state.termsConditionsUrl = termsConditionsUrl;\n },\n setPrivacyPolicyUrl(privacyPolicyUrl) {\n state.privacyPolicyUrl = privacyPolicyUrl;\n },\n setCustomWallets(customWallets) {\n state.customWallets = customWallets;\n },\n setIsSiweEnabled(isSiweEnabled) {\n state.isSiweEnabled = isSiweEnabled;\n },\n setIsUniversalProvider(isUniversalProvider) {\n state.isUniversalProvider = isUniversalProvider;\n },\n setSdkVersion(sdkVersion) {\n state.sdkVersion = sdkVersion;\n },\n setMetadata(metadata) {\n state.metadata = metadata;\n },\n setDisableAppend(disableAppend) {\n state.disableAppend = disableAppend;\n },\n setEIP6963Enabled(enableEIP6963) {\n state.enableEIP6963 = enableEIP6963;\n },\n setDebug(debug) {\n state.debug = debug;\n },\n setEnableWalletConnect(enableWalletConnect) {\n state.enableWalletConnect = enableWalletConnect;\n },\n setEnableWalletGuide(enableWalletGuide) {\n state.enableWalletGuide = enableWalletGuide;\n },\n setEnableAuthLogger(enableAuthLogger) {\n state.enableAuthLogger = enableAuthLogger;\n },\n setEnableWallets(enableWallets) {\n state.enableWallets = enableWallets;\n },\n setPreferUniversalLinks(preferUniversalLinks) {\n state.experimental_preferUniversalLinks = preferUniversalLinks;\n },\n setHasMultipleAddresses(hasMultipleAddresses) {\n state.hasMultipleAddresses = hasMultipleAddresses;\n },\n setSIWX(siwx) {\n state.siwx = siwx;\n },\n setConnectMethodsOrder(connectMethodsOrder) {\n state.features = {\n ...state.features,\n connectMethodsOrder\n };\n },\n setWalletFeaturesOrder(walletFeaturesOrder) {\n state.features = {\n ...state.features,\n walletFeaturesOrder\n };\n },\n setSocialsOrder(socialsOrder) {\n state.remoteFeatures = {\n ...state.remoteFeatures,\n socials: socialsOrder\n };\n },\n setCollapseWallets(collapseWallets) {\n state.features = {\n ...state.features,\n collapseWallets\n };\n },\n setEnableEmbedded(enableEmbedded) {\n state.enableEmbedded = enableEmbedded;\n },\n setAllowUnsupportedChain(allowUnsupportedChain) {\n state.allowUnsupportedChain = allowUnsupportedChain;\n },\n setManualWCControl(manualWCControl) {\n state.manualWCControl = manualWCControl;\n },\n setEnableNetworkSwitch(enableNetworkSwitch) {\n state.enableNetworkSwitch = enableNetworkSwitch;\n },\n setDefaultAccountTypes(defaultAccountType = {}) {\n Object.entries(defaultAccountType).forEach(([namespace, accountType]) => {\n if (accountType) {\n // @ts-expect-error - Keys are validated by the param type\n state.defaultAccountTypes[namespace] = accountType;\n }\n });\n },\n setUniversalProviderConfigOverride(universalProviderConfigOverride) {\n state.universalProviderConfigOverride = universalProviderConfigOverride;\n },\n getUniversalProviderConfigOverride() {\n return state.universalProviderConfigOverride;\n },\n getSnapshot() {\n return snapshot(state);\n }\n};\n//# sourceMappingURL=OptionsController.js.map","import { proxy } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { FetchUtil } from '../utils/FetchUtil.js';\nimport { OptionsController } from './OptionsController.js';\n// -- Constants ----------------------------------------- //\nconst DEFAULT_STATE = Object.freeze({\n enabled: true,\n events: []\n});\nconst api = new FetchUtil({ baseUrl: CoreHelperUtil.getAnalyticsUrl(), clientId: null });\n// Rate limiting constants\nconst MAX_ERRORS_PER_MINUTE = 5;\nconst ONE_MINUTE_MS = 60 * 1000;\n// -- State --------------------------------------------- //\nconst state = proxy({\n ...DEFAULT_STATE\n});\n// -- Controller ---------------------------------------- //\nexport const TelemetryController = {\n state,\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n async sendError(error, category) {\n if (!state.enabled) {\n return;\n }\n // Check rate limiting using events array\n const now = Date.now();\n const recentErrors = state.events.filter(event => {\n const eventTime = new Date(event.properties.timestamp || '').getTime();\n return now - eventTime < ONE_MINUTE_MS;\n });\n if (recentErrors.length >= MAX_ERRORS_PER_MINUTE) {\n // Exit silently\n return;\n }\n const errorEvent = {\n type: 'error',\n event: category,\n properties: {\n errorType: error.name,\n errorMessage: error.message,\n stackTrace: error.stack,\n timestamp: new Date().toISOString()\n }\n };\n state.events.push(errorEvent);\n try {\n if (typeof window === 'undefined') {\n return;\n }\n const { projectId, sdkType, sdkVersion } = OptionsController.state;\n await api.post({\n path: '/e',\n params: {\n projectId,\n st: sdkType,\n sv: sdkVersion || 'html-wagmi-4.2.2'\n },\n body: {\n eventId: CoreHelperUtil.getUUID(),\n url: window.location.href,\n domain: window.location.hostname,\n timestamp: new Date().toISOString(),\n props: {\n type: 'error',\n event: category,\n errorType: error.name,\n errorMessage: error.message,\n stackTrace: error.stack\n }\n }\n });\n }\n catch {\n // Do nothing\n }\n },\n enable() {\n state.enabled = true;\n },\n disable() {\n state.enabled = false;\n },\n clearEvents() {\n state.events = [];\n }\n};\n//# sourceMappingURL=TelemetryController.js.map","import { TelemetryController } from '../controllers/TelemetryController.js';\nexport class AppKitError extends Error {\n constructor(message, category, originalError) {\n super(message);\n this.name = 'AppKitError';\n this.category = category;\n this.originalError = originalError;\n // Ensure `this instanceof AppKitError` is true, important for custom errors.\n Object.setPrototypeOf(this, AppKitError.prototype);\n let isStackConstructedFromOriginal = false;\n if (originalError instanceof Error &&\n typeof originalError.stack === 'string' &&\n originalError.stack) {\n const originalErrorStack = originalError.stack;\n /**\n * Most error stacks start with \"ErrorName: ErrorMessage\\n...frames...\"\n * We want to take the \"...frames...\" part.\n */\n const firstNewlineIndex = originalErrorStack.indexOf('\\n');\n if (firstNewlineIndex > -1) {\n const originalFrames = originalErrorStack.substring(firstNewlineIndex + 1);\n this.stack = `${this.name}: ${this.message}\\n${originalFrames}`;\n isStackConstructedFromOriginal = true;\n }\n }\n if (!isStackConstructedFromOriginal) {\n /**\n * If stack was not (or could not be) constructed from originalError,\n * generate a standard stack trace for this AppKitError instance.\n * This will point to where `new AppKitError()` was called.\n */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, AppKitError);\n }\n else if (!this.stack) {\n /**\n * Fallback for environments without Error.captureStackTrace.\n * `super(message)` might have set a stack.\n * If `this.stack` is still undefined/empty, provide a minimal one.\n * Node.js and modern browsers typically set `this.stack` from `super(message)`.\n */\n this.stack = `${this.name}: ${this.message}`;\n }\n }\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction errorHandler(err, defaultCategory) {\n const error = err instanceof AppKitError\n ? err\n : new AppKitError(err instanceof Error ? err.message : String(err), defaultCategory, err);\n TelemetryController.sendError(error, error.category);\n throw error;\n}\nexport function withErrorBoundary(controller, defaultCategory = 'INTERNAL_SDK_ERROR') {\n const newController = {};\n Object.keys(controller).forEach(key => {\n const original = controller[key];\n if (typeof original === 'function') {\n let wrapped = original;\n if (original.constructor.name === 'AsyncFunction') {\n wrapped = async (...args) => {\n try {\n return await original(...args);\n }\n catch (err) {\n return errorHandler(err, defaultCategory);\n }\n };\n }\n else {\n wrapped = (...args) => {\n try {\n return original(...args);\n }\n catch (err) {\n return errorHandler(err, defaultCategory);\n }\n };\n }\n newController[key] = wrapped;\n }\n else {\n newController[key] = original;\n }\n });\n return newController;\n}\n//# sourceMappingURL=withErrorBoundary.js.map","import { ConstantsUtil } from '@reown/appkit-common';\n/*\n * Exclude wallets that do not support relay connections but have custom deeplink mechanisms\n * Excludes:\n * - Phantom\n * - Coinbase\n */\nexport const CUSTOM_DEEPLINK_WALLETS = {\n PHANTOM: {\n id: 'a797aa35c0fadbfc1a53e7f675162ed5226968b44a19ee3d24385c64d1d3c393',\n url: 'https://phantom.app'\n },\n SOLFLARE: {\n id: '1ca0bdd4747578705b1939af023d120677c64fe6ca76add81fda36e350605e79',\n url: 'https://solflare.com'\n },\n COINBASE: {\n id: 'fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa',\n url: 'https://go.cb-w.com'\n }\n};\nexport const MobileWalletUtil = {\n /**\n * Handles mobile wallet redirection for wallets that have Universal Links and doesn't support WalletConnect Deep Links.\n *\n * @param {string} id - The id of the wallet.\n * @param {ChainNamespace} namespace - The namespace of the chain.\n */\n handleMobileDeeplinkRedirect(id, namespace) {\n /**\n * Universal Links requires explicit user interaction to open the wallet app.\n * Previously we've been calling this with the life-cycle methods in the Solana clients by listening the SELECT_WALLET event of EventController.\n * But this breaks the UL functionality for some wallets like Phantom.\n */\n const href = window.location.href;\n const encodedHref = encodeURIComponent(href);\n if (id === CUSTOM_DEEPLINK_WALLETS.PHANTOM.id && !('phantom' in window)) {\n const protocol = href.startsWith('https') ? 'https' : 'http';\n const host = href.split('/')[2];\n const encodedRef = encodeURIComponent(`${protocol}://${host}`);\n window.location.href = `${CUSTOM_DEEPLINK_WALLETS.PHANTOM.url}/ul/browse/${encodedHref}?ref=${encodedRef}`;\n }\n if (id === CUSTOM_DEEPLINK_WALLETS.SOLFLARE.id && !('solflare' in window)) {\n window.location.href = `${CUSTOM_DEEPLINK_WALLETS.SOLFLARE.url}/ul/v1/browse/${encodedHref}?ref=${encodedHref}`;\n }\n if (namespace === ConstantsUtil.CHAIN.SOLANA) {\n if (id === CUSTOM_DEEPLINK_WALLETS.COINBASE.id && !('coinbaseSolana' in window)) {\n window.location.href = `${CUSTOM_DEEPLINK_WALLETS.COINBASE.url}/dapp?cb_url=${encodedHref}`;\n }\n }\n }\n};\n//# sourceMappingURL=MobileWallet.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n walletImages: {},\n networkImages: {},\n chainImages: {},\n connectorImages: {},\n tokenImages: {},\n currencyImages: {}\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribeNetworkImages(callback) {\n return sub(state.networkImages, () => callback(state.networkImages));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n setWalletImage(key, value) {\n state.walletImages[key] = value;\n },\n setNetworkImage(key, value) {\n state.networkImages[key] = value;\n },\n setChainImage(key, value) {\n state.chainImages[key] = value;\n },\n setConnectorImage(key, value) {\n state.connectorImages = { ...state.connectorImages, [key]: value };\n },\n setTokenImage(key, value) {\n state.tokenImages[key] = value;\n },\n setCurrencyImage(key, value) {\n state.currencyImages[key] = value;\n }\n};\n// Export the controller wrapped with our error boundary\nexport const AssetController = withErrorBoundary(controller);\n//# sourceMappingURL=AssetController.js.map","import { proxy } from 'valtio/vanilla';\nimport { ApiController } from '../controllers/ApiController.js';\nimport { AssetController } from '../controllers/AssetController.js';\nconst namespaceImageIds = {\n // Ethereum\n eip155: 'ba0ba0cd-17c6-4806-ad93-f9d174f17900',\n // Solana\n solana: 'a1b58899-f671-4276-6a5e-56ca5bd59700',\n // Polkadot\n polkadot: '',\n // Bitcoin\n bip122: '0b4838db-0161-4ffe-022d-532bf03dba00',\n // Cosmos\n cosmos: ''\n};\n// -- State --------------------------------------------- //\nconst state = proxy({\n networkImagePromises: {}\n});\n// -- Util ---------------------------------------- //\nexport const AssetUtil = {\n async fetchWalletImage(imageId) {\n if (!imageId) {\n return undefined;\n }\n await ApiController._fetchWalletImage(imageId);\n return this.getWalletImageById(imageId);\n },\n async fetchNetworkImage(imageId) {\n if (!imageId) {\n return undefined;\n }\n const existingImage = this.getNetworkImageById(imageId);\n // Check if the image already exists\n if (existingImage) {\n return existingImage;\n }\n // Check if the promise is already created\n if (!state.networkImagePromises[imageId]) {\n state.networkImagePromises[imageId] = ApiController._fetchNetworkImage(imageId);\n }\n await state.networkImagePromises[imageId];\n return this.getNetworkImageById(imageId);\n },\n getWalletImageById(imageId) {\n if (!imageId) {\n return undefined;\n }\n return AssetController.state.walletImages[imageId];\n },\n getWalletImage(wallet) {\n if (wallet?.image_url) {\n return wallet?.image_url;\n }\n if (wallet?.image_id) {\n return AssetController.state.walletImages[wallet.image_id];\n }\n return undefined;\n },\n getNetworkImage(network) {\n if (network?.assets?.imageUrl) {\n return network?.assets?.imageUrl;\n }\n if (network?.assets?.imageId) {\n return AssetController.state.networkImages[network.assets.imageId];\n }\n return undefined;\n },\n getNetworkImageById(imageId) {\n if (!imageId) {\n return undefined;\n }\n return AssetController.state.networkImages[imageId];\n },\n getConnectorImage(connector) {\n if (connector?.imageUrl) {\n return connector.imageUrl;\n }\n if (connector?.imageId) {\n return AssetController.state.connectorImages[connector.imageId];\n }\n return undefined;\n },\n getChainImage(chain) {\n return AssetController.state.networkImages[namespaceImageIds[chain]];\n }\n};\n//# sourceMappingURL=AssetUtil.js.map","import { proxy } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { OptionsController } from './OptionsController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n message: '',\n variant: 'info',\n open: false\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n open(message, variant) {\n const { debug } = OptionsController.state;\n const { shortMessage, longMessage } = message;\n if (debug) {\n state.message = shortMessage;\n state.variant = variant;\n state.open = true;\n }\n if (longMessage) {\n // eslint-disable-next-line no-console\n console.error(typeof longMessage === 'function' ? longMessage() : longMessage);\n }\n },\n close() {\n state.open = false;\n state.message = '';\n state.variant = 'info';\n }\n};\n// Export the controller wrapped with our error boundary\nexport const AlertController = withErrorBoundary(controller);\n//# sourceMappingURL=AlertController.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { ConstantsUtil, isSafe } from '@reown/appkit-common';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { FetchUtil } from '../utils/FetchUtil.js';\nimport { AccountController } from './AccountController.js';\nimport { AlertController } from './AlertController.js';\nimport { OptionsController } from './OptionsController.js';\n// -- Helpers ------------------------------------------- //\nconst baseUrl = CoreHelperUtil.getAnalyticsUrl();\nconst api = new FetchUtil({ baseUrl, clientId: null });\nconst excluded = ['MODAL_CREATED'];\n// -- State --------------------------------------------- //\nconst state = proxy({\n timestamp: Date.now(),\n reportedErrors: {},\n data: {\n type: 'track',\n event: 'MODAL_CREATED'\n }\n});\n// -- Controller ---------------------------------------- //\nexport const EventsController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n getSdkProperties() {\n const { projectId, sdkType, sdkVersion } = OptionsController.state;\n return {\n projectId,\n st: sdkType,\n sv: sdkVersion || 'html-wagmi-4.2.2'\n };\n },\n async _sendAnalyticsEvent(payload) {\n try {\n const address = AccountController.state.address;\n if (excluded.includes(payload.data.event) || typeof window === 'undefined') {\n return;\n }\n await api.post({\n path: '/e',\n params: EventsController.getSdkProperties(),\n body: {\n eventId: CoreHelperUtil.getUUID(),\n url: window.location.href,\n domain: window.location.hostname,\n timestamp: payload.timestamp,\n props: { ...payload.data, address }\n }\n });\n state.reportedErrors['FORBIDDEN'] = false;\n }\n catch (err) {\n const isForbiddenError = err instanceof Error &&\n err.cause instanceof Response &&\n err.cause.status === ConstantsUtil.HTTP_STATUS_CODES.FORBIDDEN &&\n !state.reportedErrors['FORBIDDEN'];\n if (isForbiddenError) {\n AlertController.open({\n shortMessage: 'Invalid App Configuration',\n longMessage: `Origin ${isSafe() ? window.origin : 'uknown'} not found on Allowlist - update configuration on cloud.reown.com`\n }, 'error');\n state.reportedErrors['FORBIDDEN'] = true;\n }\n }\n },\n sendEvent(data) {\n state.timestamp = Date.now();\n state.data = data;\n if (OptionsController.state.features?.analytics) {\n EventsController._sendAnalyticsEvent(state);\n }\n }\n};\n//# sourceMappingURL=EventsController.js.map","import { proxy } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { AssetUtil } from '../utils/AssetUtil.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { FetchUtil } from '../utils/FetchUtil.js';\nimport { CUSTOM_DEEPLINK_WALLETS } from '../utils/MobileWallet.js';\nimport { StorageUtil } from '../utils/StorageUtil.js';\nimport { AssetController } from './AssetController.js';\nimport { ChainController } from './ChainController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { EventsController } from './EventsController.js';\nimport { OptionsController } from './OptionsController.js';\n// -- Helpers ------------------------------------------- //\nconst baseUrl = CoreHelperUtil.getApiUrl();\nexport const api = new FetchUtil({\n baseUrl,\n clientId: null\n});\nconst entries = 40;\nconst recommendedEntries = 4;\nconst imageCountToFetch = 20;\n// -- State --------------------------------------------- //\nconst state = proxy({\n promises: {},\n page: 1,\n count: 0,\n featured: [],\n allFeatured: [],\n recommended: [],\n allRecommended: [],\n wallets: [],\n filteredWallets: [],\n search: [],\n isAnalyticsEnabled: false,\n excludedWallets: [],\n isFetchingRecommendedWallets: false\n});\n// -- Controller ---------------------------------------- //\nexport const ApiController = {\n state,\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n _getSdkProperties() {\n const { projectId, sdkType, sdkVersion } = OptionsController.state;\n return {\n projectId,\n st: sdkType || 'appkit',\n sv: sdkVersion || 'html-wagmi-4.2.2'\n };\n },\n _filterOutExtensions(wallets) {\n if (OptionsController.state.isUniversalProvider) {\n return wallets.filter(w => Boolean(w.mobile_link || w.desktop_link || w.webapp_link));\n }\n return wallets;\n },\n async _fetchWalletImage(imageId) {\n const imageUrl = `${api.baseUrl}/getWalletImage/${imageId}`;\n const blob = await api.getBlob({ path: imageUrl, params: ApiController._getSdkProperties() });\n AssetController.setWalletImage(imageId, URL.createObjectURL(blob));\n },\n async _fetchNetworkImage(imageId) {\n const imageUrl = `${api.baseUrl}/public/getAssetImage/${imageId}`;\n const blob = await api.getBlob({ path: imageUrl, params: ApiController._getSdkProperties() });\n AssetController.setNetworkImage(imageId, URL.createObjectURL(blob));\n },\n async _fetchConnectorImage(imageId) {\n const imageUrl = `${api.baseUrl}/public/getAssetImage/${imageId}`;\n const blob = await api.getBlob({ path: imageUrl, params: ApiController._getSdkProperties() });\n AssetController.setConnectorImage(imageId, URL.createObjectURL(blob));\n },\n async _fetchCurrencyImage(countryCode) {\n const imageUrl = `${api.baseUrl}/public/getCurrencyImage/${countryCode}`;\n const blob = await api.getBlob({ path: imageUrl, params: ApiController._getSdkProperties() });\n AssetController.setCurrencyImage(countryCode, URL.createObjectURL(blob));\n },\n async _fetchTokenImage(symbol) {\n const imageUrl = `${api.baseUrl}/public/getTokenImage/${symbol}`;\n const blob = await api.getBlob({ path: imageUrl, params: ApiController._getSdkProperties() });\n AssetController.setTokenImage(symbol, URL.createObjectURL(blob));\n },\n _filterWalletsByPlatform(wallets) {\n const filteredWallets = CoreHelperUtil.isMobile()\n ? wallets?.filter(w => {\n if (w.mobile_link) {\n return true;\n }\n if (w.id === CUSTOM_DEEPLINK_WALLETS.COINBASE.id) {\n return true;\n }\n const isSolana = ChainController.state.activeChain === 'solana';\n return (isSolana &&\n (w.id === CUSTOM_DEEPLINK_WALLETS.SOLFLARE.id ||\n w.id === CUSTOM_DEEPLINK_WALLETS.PHANTOM.id));\n })\n : wallets;\n return filteredWallets;\n },\n async fetchProjectConfig() {\n const response = await api.get({\n path: '/appkit/v1/config',\n params: ApiController._getSdkProperties()\n });\n return response.features;\n },\n async fetchAllowedOrigins() {\n try {\n const { allowedOrigins } = await api.get({\n path: '/projects/v1/origins',\n params: ApiController._getSdkProperties()\n });\n return allowedOrigins;\n }\n catch (error) {\n return [];\n }\n },\n async fetchNetworkImages() {\n const requestedCaipNetworks = ChainController.getAllRequestedCaipNetworks();\n const ids = requestedCaipNetworks\n ?.map(({ assets }) => assets?.imageId)\n .filter(Boolean)\n .filter(imageId => !AssetUtil.getNetworkImageById(imageId));\n if (ids) {\n await Promise.allSettled(ids.map(id => ApiController._fetchNetworkImage(id)));\n }\n },\n async fetchConnectorImages() {\n const { connectors } = ConnectorController.state;\n const ids = connectors.map(({ imageId }) => imageId).filter(Boolean);\n await Promise.allSettled(ids.map(id => ApiController._fetchConnectorImage(id)));\n },\n async fetchCurrencyImages(currencies = []) {\n await Promise.allSettled(currencies.map(currency => ApiController._fetchCurrencyImage(currency)));\n },\n async fetchTokenImages(tokens = []) {\n await Promise.allSettled(tokens.map(token => ApiController._fetchTokenImage(token)));\n },\n async fetchWallets(params) {\n const exclude = params.exclude ?? [];\n const sdkProperties = ApiController._getSdkProperties();\n if (sdkProperties.sv.startsWith('html-core-')) {\n exclude.push(...Object.values(CUSTOM_DEEPLINK_WALLETS).map(w => w.id));\n }\n const wallets = await api.get({\n path: '/getWallets',\n params: {\n ...ApiController._getSdkProperties(),\n ...params,\n page: String(params.page),\n entries: String(params.entries),\n include: params.include?.join(','),\n exclude: exclude.join(',')\n }\n });\n const filteredWallets = ApiController._filterWalletsByPlatform(wallets?.data);\n return {\n data: filteredWallets || [],\n // Keep original count for display on main page\n count: wallets?.count\n };\n },\n async fetchFeaturedWallets() {\n const { featuredWalletIds } = OptionsController.state;\n if (featuredWalletIds?.length) {\n const params = {\n ...ApiController._getSdkProperties(),\n page: 1,\n entries: featuredWalletIds?.length ?? recommendedEntries,\n include: featuredWalletIds\n };\n const { data } = await ApiController.fetchWallets(params);\n const sortedData = [...data].sort((a, b) => featuredWalletIds.indexOf(a.id) - featuredWalletIds.indexOf(b.id));\n const images = sortedData.map(d => d.image_id).filter(Boolean);\n await Promise.allSettled(images.map(id => ApiController._fetchWalletImage(id)));\n state.featured = sortedData;\n state.allFeatured = sortedData;\n }\n },\n async fetchRecommendedWallets() {\n try {\n state.isFetchingRecommendedWallets = true;\n const { includeWalletIds, excludeWalletIds, featuredWalletIds } = OptionsController.state;\n const exclude = [...(excludeWalletIds ?? []), ...(featuredWalletIds ?? [])].filter(Boolean);\n const chains = ChainController.getRequestedCaipNetworkIds().join(',');\n const params = {\n page: 1,\n entries: recommendedEntries,\n include: includeWalletIds,\n exclude,\n chains\n };\n const { data, count } = await ApiController.fetchWallets(params);\n const recent = StorageUtil.getRecentWallets();\n const recommendedImages = data.map(d => d.image_id).filter(Boolean);\n const recentImages = recent.map(r => r.image_id).filter(Boolean);\n await Promise.allSettled([...recommendedImages, ...recentImages].map(id => ApiController._fetchWalletImage(id)));\n state.recommended = data;\n state.allRecommended = data;\n state.count = count ?? 0;\n }\n catch {\n // Catch silently\n }\n finally {\n state.isFetchingRecommendedWallets = false;\n }\n },\n async fetchWalletsByPage({ page }) {\n const { includeWalletIds, excludeWalletIds, featuredWalletIds } = OptionsController.state;\n const chains = ChainController.getRequestedCaipNetworkIds().join(',');\n const exclude = [\n ...state.recommended.map(({ id }) => id),\n ...(excludeWalletIds ?? []),\n ...(featuredWalletIds ?? [])\n ].filter(Boolean);\n const params = {\n page,\n entries,\n include: includeWalletIds,\n exclude,\n chains\n };\n const { data, count } = await ApiController.fetchWallets(params);\n const images = data\n .slice(0, imageCountToFetch)\n .map(w => w.image_id)\n .filter(Boolean);\n await Promise.allSettled(images.map(id => ApiController._fetchWalletImage(id)));\n state.wallets = CoreHelperUtil.uniqueBy([...state.wallets, ...ApiController._filterOutExtensions(data)], 'id').filter(w => w.chains?.some(chain => chains.includes(chain)));\n state.count = count > state.count ? count : state.count;\n state.page = page;\n },\n async initializeExcludedWallets({ ids }) {\n const params = {\n page: 1,\n entries: ids.length,\n include: ids\n };\n const { data } = await ApiController.fetchWallets(params);\n if (data) {\n data.forEach(wallet => {\n state.excludedWallets.push({ rdns: wallet.rdns, name: wallet.name });\n });\n }\n },\n async searchWallet({ search, badge }) {\n const { includeWalletIds, excludeWalletIds } = OptionsController.state;\n const chains = ChainController.getRequestedCaipNetworkIds().join(',');\n state.search = [];\n const params = {\n page: 1,\n entries: 100,\n search: search?.trim(),\n badge_type: badge,\n include: includeWalletIds,\n exclude: excludeWalletIds,\n chains\n };\n const { data } = await ApiController.fetchWallets(params);\n EventsController.sendEvent({\n type: 'track',\n event: 'SEARCH_WALLET',\n properties: { badge: badge ?? '', search: search ?? '' }\n });\n const images = data.map(w => w.image_id).filter(Boolean);\n await Promise.allSettled([\n ...images.map(id => ApiController._fetchWalletImage(id)),\n CoreHelperUtil.wait(300)\n ]);\n state.search = ApiController._filterOutExtensions(data);\n },\n initPromise(key, fetchFn) {\n const existingPromise = state.promises[key];\n if (existingPromise) {\n return existingPromise;\n }\n return (state.promises[key] = fetchFn());\n },\n prefetch({ fetchConnectorImages = true, fetchFeaturedWallets = true, fetchRecommendedWallets = true, fetchNetworkImages = true } = {}) {\n const promises = [\n fetchConnectorImages &&\n ApiController.initPromise('connectorImages', ApiController.fetchConnectorImages),\n fetchFeaturedWallets &&\n ApiController.initPromise('featuredWallets', ApiController.fetchFeaturedWallets),\n fetchRecommendedWallets &&\n ApiController.initPromise('recommendedWallets', ApiController.fetchRecommendedWallets),\n fetchNetworkImages &&\n ApiController.initPromise('networkImages', ApiController.fetchNetworkImages)\n ].filter(Boolean);\n return Promise.allSettled(promises);\n },\n prefetchAnalyticsConfig() {\n if (OptionsController.state.features?.analytics) {\n ApiController.fetchAnalyticsConfig();\n }\n },\n async fetchAnalyticsConfig() {\n try {\n const { isAnalyticsEnabled } = await api.get({\n path: '/getAnalyticsConfig',\n params: ApiController._getSdkProperties()\n });\n OptionsController.setFeatures({ analytics: isAnalyticsEnabled });\n }\n catch (error) {\n OptionsController.setFeatures({ analytics: false });\n }\n },\n filterByNamespaces(namespaces) {\n if (!namespaces?.length) {\n state.featured = state.allFeatured;\n state.recommended = state.allRecommended;\n return;\n }\n const caipNetworkIds = ChainController.getRequestedCaipNetworkIds().join(',');\n state.featured = state.allFeatured.filter(wallet => wallet.chains?.some(chain => caipNetworkIds.includes(chain)));\n state.recommended = state.allRecommended.filter(wallet => wallet.chains?.some(chain => caipNetworkIds.includes(chain)));\n state.filteredWallets = state.wallets.filter(wallet => wallet.chains?.some(chain => caipNetworkIds.includes(chain)));\n },\n clearFilterByNamespaces() {\n state.filteredWallets = [];\n },\n setFilterByNamespace(namespace) {\n if (!namespace) {\n state.featured = state.allFeatured;\n state.recommended = state.allRecommended;\n return;\n }\n const caipNetworkIds = ChainController.getRequestedCaipNetworkIds().join(',');\n state.featured = state.allFeatured.filter(wallet => wallet.chains?.some(chain => caipNetworkIds.includes(chain)));\n state.recommended = state.allRecommended.filter(wallet => wallet.chains?.some(chain => caipNetworkIds.includes(chain)));\n state.filteredWallets = state.wallets.filter(wallet => wallet.chains?.some(chain => caipNetworkIds.includes(chain)));\n }\n};\n//# sourceMappingURL=ApiController.js.map","import { proxy, snapshot } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { ChainController } from './ChainController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { ModalController } from './ModalController.js';\nimport { OptionsController } from './OptionsController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n view: 'Connect',\n history: ['Connect'],\n transactionStack: []\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n pushTransactionStack(action) {\n state.transactionStack.push(action);\n },\n popTransactionStack(status) {\n const action = state.transactionStack.pop();\n if (!action) {\n return;\n }\n const { onSuccess, onError, onCancel } = action;\n switch (status) {\n case 'success':\n onSuccess?.();\n break;\n case 'error':\n onError?.();\n RouterController.goBack();\n break;\n case 'cancel':\n onCancel?.();\n RouterController.goBack();\n break;\n default:\n }\n },\n push(view, data) {\n if (view !== state.view) {\n state.view = view;\n state.history.push(view);\n state.data = data;\n }\n },\n reset(view, data) {\n state.view = view;\n state.history = [view];\n state.data = data;\n },\n replace(view, data) {\n const lastView = state.history.at(-1);\n const isSameView = lastView === view;\n if (!isSameView) {\n state.view = view;\n state.history[state.history.length - 1] = view;\n state.data = data;\n }\n },\n goBack() {\n const isConnected = ChainController.state.activeCaipAddress;\n const isFarcasterView = RouterController.state.view === 'ConnectingFarcaster';\n const shouldReload = !isConnected && isFarcasterView;\n if (state.history.length > 1) {\n state.history.pop();\n const [last] = state.history.slice(-1);\n if (last) {\n const isConnectView = last === 'Connect';\n if (isConnected && isConnectView) {\n state.view = 'Account';\n }\n else {\n state.view = last;\n }\n }\n }\n else {\n ModalController.close();\n }\n if (state.data?.wallet) {\n state.data.wallet = undefined;\n }\n // Reloading the iframe contentwindow and doing the view animation in the modal causes a small freeze in the transition. Doing these separately fixes that.\n setTimeout(() => {\n if (shouldReload) {\n AccountController.setFarcasterUrl(undefined, ChainController.state.activeChain);\n const authConnector = ConnectorController.getAuthConnector();\n authConnector?.provider?.reload();\n const optionsState = snapshot(OptionsController.state);\n authConnector?.provider?.syncDappData?.({\n metadata: optionsState.metadata,\n sdkVersion: optionsState.sdkVersion,\n projectId: optionsState.projectId,\n sdkType: optionsState.sdkType\n });\n }\n }, 100);\n },\n goBackToIndex(historyIndex) {\n if (state.history.length > 1) {\n state.history = state.history.slice(0, historyIndex + 1);\n const [last] = state.history.slice(-1);\n if (last) {\n state.view = last;\n }\n }\n },\n goBackOrCloseModal() {\n if (RouterController.state.history.length > 1) {\n RouterController.goBack();\n }\n else {\n ModalController.close();\n }\n }\n};\n// Export the controller wrapped with our error boundary\nexport const RouterController = withErrorBoundary(controller);\n//# sourceMappingURL=RouterController.js.map","import { proxy, snapshot, subscribe as sub } from 'valtio/vanilla';\nimport { getW3mThemeVariables } from '@reown/appkit-common';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { ConnectorController } from './ConnectorController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n themeMode: 'dark',\n themeVariables: {},\n w3mThemeVariables: undefined\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n setThemeMode(themeMode) {\n state.themeMode = themeMode;\n try {\n const authConnector = ConnectorController.getAuthConnector();\n if (authConnector) {\n const themeVariables = controller.getSnapshot().themeVariables;\n authConnector.provider.syncTheme({\n themeMode,\n themeVariables,\n w3mThemeVariables: getW3mThemeVariables(themeVariables, themeMode)\n });\n }\n }\n catch {\n // eslint-disable-next-line no-console\n console.info('Unable to sync theme to auth connector');\n }\n },\n setThemeVariables(themeVariables) {\n state.themeVariables = { ...state.themeVariables, ...themeVariables };\n try {\n const authConnector = ConnectorController.getAuthConnector();\n if (authConnector) {\n const themeVariablesSnapshot = controller.getSnapshot().themeVariables;\n authConnector.provider.syncTheme({\n themeVariables: themeVariablesSnapshot,\n w3mThemeVariables: getW3mThemeVariables(state.themeVariables, state.themeMode)\n });\n }\n }\n catch {\n // eslint-disable-next-line no-console\n console.info('Unable to sync theme to auth connector');\n }\n },\n getSnapshot() {\n return snapshot(state);\n }\n};\n// Export the controller wrapped with our error boundary\nexport const ThemeController = withErrorBoundary(controller);\n//# sourceMappingURL=ThemeController.js.map","import { proxy, ref, snapshot, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { ConstantsUtil, getW3mThemeVariables } from '@reown/appkit-common';\nimport { MobileWalletUtil } from '../utils/MobileWallet.js';\nimport { StorageUtil } from '../utils/StorageUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { ApiController } from './ApiController.js';\nimport { ChainController } from './ChainController.js';\nimport { OptionsController } from './OptionsController.js';\nimport { RouterController } from './RouterController.js';\nimport { ThemeController } from './ThemeController.js';\nconst defaultActiveConnectors = {\n eip155: undefined,\n solana: undefined,\n polkadot: undefined,\n bip122: undefined,\n cosmos: undefined\n};\n// -- State --------------------------------------------- //\nconst state = proxy({\n allConnectors: [],\n connectors: [],\n activeConnector: undefined,\n filterByNamespace: undefined,\n activeConnectorIds: { ...defaultActiveConnectors },\n filterByNamespaceMap: {\n eip155: true,\n solana: true,\n polkadot: true,\n bip122: true,\n cosmos: true\n }\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribe(callback) {\n return sub(state, () => {\n callback(state);\n });\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n initialize(namespaces) {\n namespaces.forEach(namespace => {\n const connectorId = StorageUtil.getConnectedConnectorId(namespace);\n if (connectorId) {\n ConnectorController.setConnectorId(connectorId, namespace);\n }\n });\n },\n setActiveConnector(connector) {\n if (connector) {\n state.activeConnector = ref(connector);\n }\n },\n setConnectors(connectors) {\n const newConnectors = connectors.filter(newConnector => !state.allConnectors.some(existingConnector => existingConnector.id === newConnector.id &&\n ConnectorController.getConnectorName(existingConnector.name) ===\n ConnectorController.getConnectorName(newConnector.name) &&\n existingConnector.chain === newConnector.chain));\n /**\n * We are reassigning the state of the proxy to a new array of new objects, ConnectorController can cause issues. So it is better to use ref in ConnectorController case.\n * Check more about proxy on https://valtio.dev/docs/api/basic/proxy#Gotchas\n * Check more about ref on https://valtio.dev/docs/api/basic/ref\n */\n newConnectors.forEach(connector => {\n if (connector.type !== 'MULTI_CHAIN') {\n state.allConnectors.push(ref(connector));\n }\n });\n const enabledNamespaces = ConnectorController.getEnabledNamespaces();\n const connectorsFilteredByNamespaces = ConnectorController.getEnabledConnectors(enabledNamespaces);\n state.connectors = ConnectorController.mergeMultiChainConnectors(connectorsFilteredByNamespaces);\n },\n filterByNamespaces(enabledNamespaces) {\n Object.keys(state.filterByNamespaceMap).forEach(namespace => {\n state.filterByNamespaceMap[namespace] = false;\n });\n enabledNamespaces.forEach(namespace => {\n state.filterByNamespaceMap[namespace] = true;\n });\n ConnectorController.updateConnectorsForEnabledNamespaces();\n },\n filterByNamespace(namespace, enabled) {\n state.filterByNamespaceMap[namespace] = enabled;\n ConnectorController.updateConnectorsForEnabledNamespaces();\n },\n updateConnectorsForEnabledNamespaces() {\n const enabledNamespaces = ConnectorController.getEnabledNamespaces();\n const enabledConnectors = ConnectorController.getEnabledConnectors(enabledNamespaces);\n const areAllNamespacesEnabled = ConnectorController.areAllNamespacesEnabled();\n state.connectors = ConnectorController.mergeMultiChainConnectors(enabledConnectors);\n if (areAllNamespacesEnabled) {\n ApiController.clearFilterByNamespaces();\n }\n else {\n ApiController.filterByNamespaces(enabledNamespaces);\n }\n },\n getEnabledNamespaces() {\n return Object.entries(state.filterByNamespaceMap)\n .filter(([_, enabled]) => enabled)\n .map(([namespace]) => namespace);\n },\n getEnabledConnectors(enabledNamespaces) {\n return state.allConnectors.filter(connector => enabledNamespaces.includes(connector.chain));\n },\n areAllNamespacesEnabled() {\n return Object.values(state.filterByNamespaceMap).every(enabled => enabled);\n },\n mergeMultiChainConnectors(connectors) {\n const connectorsByNameMap = ConnectorController.generateConnectorMapByName(connectors);\n const mergedConnectors = [];\n connectorsByNameMap.forEach(keyConnectors => {\n const firstItem = keyConnectors[0];\n const isAuthConnector = firstItem?.id === ConstantsUtil.CONNECTOR_ID.AUTH;\n if (keyConnectors.length > 1 && firstItem) {\n mergedConnectors.push({\n name: firstItem.name,\n imageUrl: firstItem.imageUrl,\n imageId: firstItem.imageId,\n connectors: [...keyConnectors],\n type: isAuthConnector ? 'AUTH' : 'MULTI_CHAIN',\n // These values are just placeholders, we don't use them in multi-chain connector select screen\n chain: 'eip155',\n id: firstItem?.id || ''\n });\n }\n else if (firstItem) {\n mergedConnectors.push(firstItem);\n }\n });\n return mergedConnectors;\n },\n generateConnectorMapByName(connectors) {\n const connectorsByNameMap = new Map();\n connectors.forEach(connector => {\n const { name } = connector;\n const connectorName = ConnectorController.getConnectorName(name);\n if (!connectorName) {\n return;\n }\n const connectorsByName = connectorsByNameMap.get(connectorName) || [];\n const haveSameConnector = connectorsByName.find(c => c.chain === connector.chain);\n if (!haveSameConnector) {\n connectorsByName.push(connector);\n }\n connectorsByNameMap.set(connectorName, connectorsByName);\n });\n return connectorsByNameMap;\n },\n getConnectorName(name) {\n if (!name) {\n return name;\n }\n const nameOverrideMap = {\n 'Trust Wallet': 'Trust'\n };\n return nameOverrideMap[name] || name;\n },\n getUniqueConnectorsByName(connectors) {\n const uniqueConnectors = [];\n connectors.forEach(c => {\n if (!uniqueConnectors.find(uc => uc.chain === c.chain)) {\n uniqueConnectors.push(c);\n }\n });\n return uniqueConnectors;\n },\n addConnector(connector) {\n if (connector.id === ConstantsUtil.CONNECTOR_ID.AUTH) {\n const authConnector = connector;\n const optionsState = snapshot(OptionsController.state);\n const themeMode = ThemeController.getSnapshot().themeMode;\n const themeVariables = ThemeController.getSnapshot().themeVariables;\n authConnector?.provider?.syncDappData?.({\n metadata: optionsState.metadata,\n sdkVersion: optionsState.sdkVersion,\n projectId: optionsState.projectId,\n sdkType: optionsState.sdkType\n });\n authConnector?.provider?.syncTheme({\n themeMode,\n themeVariables,\n w3mThemeVariables: getW3mThemeVariables(themeVariables, themeMode)\n });\n ConnectorController.setConnectors([connector]);\n }\n else {\n ConnectorController.setConnectors([connector]);\n }\n },\n getAuthConnector(chainNamespace) {\n const activeNamespace = chainNamespace || ChainController.state.activeChain;\n const authConnector = state.connectors.find(c => c.id === ConstantsUtil.CONNECTOR_ID.AUTH);\n if (!authConnector) {\n return undefined;\n }\n if (authConnector?.connectors?.length) {\n const connector = authConnector.connectors.find(c => c.chain === activeNamespace);\n return connector;\n }\n return authConnector;\n },\n getAnnouncedConnectorRdns() {\n return state.connectors.filter(c => c.type === 'ANNOUNCED').map(c => c.info?.rdns);\n },\n getConnectorById(id) {\n return state.allConnectors.find(c => c.id === id);\n },\n getConnector(id, rdns) {\n const connectorsByNamespace = state.allConnectors.filter(c => c.chain === ChainController.state.activeChain);\n return connectorsByNamespace.find(c => c.explorerId === id || c.info?.rdns === rdns);\n },\n syncIfAuthConnector(connector) {\n if (connector.id !== 'ID_AUTH') {\n return;\n }\n const authConnector = connector;\n const optionsState = snapshot(OptionsController.state);\n const themeMode = ThemeController.getSnapshot().themeMode;\n const themeVariables = ThemeController.getSnapshot().themeVariables;\n authConnector?.provider?.syncDappData?.({\n metadata: optionsState.metadata,\n sdkVersion: optionsState.sdkVersion,\n sdkType: optionsState.sdkType,\n projectId: optionsState.projectId\n });\n authConnector.provider.syncTheme({\n themeMode,\n themeVariables,\n w3mThemeVariables: getW3mThemeVariables(themeVariables, themeMode)\n });\n },\n /**\n * Returns the connectors filtered by namespace.\n * @param namespace - The namespace to filter the connectors by.\n * @returns ConnectorWithProviders[].\n */\n getConnectorsByNamespace(namespace) {\n const namespaceConnectors = state.allConnectors.filter(connector => connector.chain === namespace);\n return ConnectorController.mergeMultiChainConnectors(namespaceConnectors);\n },\n selectWalletConnector(wallet) {\n const connector = ConnectorController.getConnector(wallet.id, wallet.rdns);\n const namespace = ChainController.state.activeChain;\n MobileWalletUtil.handleMobileDeeplinkRedirect(connector?.explorerId || wallet.id, namespace);\n if (connector) {\n RouterController.push('ConnectingExternal', { connector });\n }\n else {\n RouterController.push('ConnectingWalletConnect', { wallet });\n }\n },\n /**\n * Returns the connectors. If a namespace is provided, the connectors are filtered by namespace.\n * @param namespace - The namespace to filter the connectors by. If not provided, all connectors are returned.\n * @returns ConnectorWithProviders[].\n */\n getConnectors(namespace) {\n if (namespace) {\n return ConnectorController.getConnectorsByNamespace(namespace);\n }\n return ConnectorController.mergeMultiChainConnectors(state.allConnectors);\n },\n /**\n * Sets the filter by namespace and updates the connectors.\n * @param namespace - The namespace to filter the connectors by.\n */\n setFilterByNamespace(namespace) {\n state.filterByNamespace = namespace;\n state.connectors = ConnectorController.getConnectors(namespace);\n ApiController.setFilterByNamespace(namespace);\n },\n setConnectorId(connectorId, namespace) {\n if (connectorId) {\n state.activeConnectorIds = {\n ...state.activeConnectorIds,\n [namespace]: connectorId\n };\n StorageUtil.setConnectedConnectorId(namespace, connectorId);\n }\n },\n removeConnectorId(namespace) {\n state.activeConnectorIds = {\n ...state.activeConnectorIds,\n [namespace]: undefined\n };\n StorageUtil.deleteConnectedConnectorId(namespace);\n },\n getConnectorId(namespace) {\n if (!namespace) {\n return undefined;\n }\n return state.activeConnectorIds[namespace];\n },\n isConnected(namespace) {\n if (!namespace) {\n return Object.values(state.activeConnectorIds).some(id => Boolean(id));\n }\n return Boolean(state.activeConnectorIds[namespace]);\n },\n resetConnectorIds() {\n state.activeConnectorIds = { ...defaultActiveConnectors };\n }\n};\n// Export the controller wrapped with our error boundary\nexport const ConnectorController = withErrorBoundary(controller);\n//# sourceMappingURL=ConnectorController.js.map","const DEFAULT_SDK_URL = 'https://secure.walletconnect.org/sdk';\nexport const SECURE_SITE_SDK = (typeof process !== 'undefined' && typeof process.env !== 'undefined'\n ? process.env['NEXT_PUBLIC_SECURE_SITE_SDK_URL']\n : undefined) || DEFAULT_SDK_URL;\nexport const DEFAULT_LOG_LEVEL = (typeof process !== 'undefined' && typeof process.env !== 'undefined'\n ? process.env['NEXT_PUBLIC_DEFAULT_LOG_LEVEL']\n : undefined) || 'error';\nexport const SECURE_SITE_SDK_VERSION = (typeof process !== 'undefined' && typeof process.env !== 'undefined'\n ? process.env['NEXT_PUBLIC_SECURE_SITE_SDK_VERSION']\n : undefined) || '4';\nexport const W3mFrameConstants = {\n APP_EVENT_KEY: '@w3m-app/',\n FRAME_EVENT_KEY: '@w3m-frame/',\n RPC_METHOD_KEY: 'RPC_',\n STORAGE_KEY: '@appkit-wallet/',\n SESSION_TOKEN_KEY: 'SESSION_TOKEN_KEY',\n EMAIL_LOGIN_USED_KEY: 'EMAIL_LOGIN_USED_KEY',\n LAST_USED_CHAIN_KEY: 'LAST_USED_CHAIN_KEY',\n LAST_EMAIL_LOGIN_TIME: 'LAST_EMAIL_LOGIN_TIME',\n EMAIL: 'EMAIL',\n PREFERRED_ACCOUNT_TYPE: 'PREFERRED_ACCOUNT_TYPE',\n SMART_ACCOUNT_ENABLED: 'SMART_ACCOUNT_ENABLED',\n SMART_ACCOUNT_ENABLED_NETWORKS: 'SMART_ACCOUNT_ENABLED_NETWORKS',\n SOCIAL_USERNAME: 'SOCIAL_USERNAME',\n APP_SWITCH_NETWORK: '@w3m-app/SWITCH_NETWORK',\n APP_CONNECT_EMAIL: '@w3m-app/CONNECT_EMAIL',\n APP_CONNECT_DEVICE: '@w3m-app/CONNECT_DEVICE',\n APP_CONNECT_OTP: '@w3m-app/CONNECT_OTP',\n APP_CONNECT_SOCIAL: '@w3m-app/CONNECT_SOCIAL',\n APP_GET_SOCIAL_REDIRECT_URI: '@w3m-app/GET_SOCIAL_REDIRECT_URI',\n APP_GET_USER: '@w3m-app/GET_USER',\n APP_SIGN_OUT: '@w3m-app/SIGN_OUT',\n APP_IS_CONNECTED: '@w3m-app/IS_CONNECTED',\n APP_GET_CHAIN_ID: '@w3m-app/GET_CHAIN_ID',\n APP_RPC_REQUEST: '@w3m-app/RPC_REQUEST',\n APP_UPDATE_EMAIL: '@w3m-app/UPDATE_EMAIL',\n APP_UPDATE_EMAIL_PRIMARY_OTP: '@w3m-app/UPDATE_EMAIL_PRIMARY_OTP',\n APP_UPDATE_EMAIL_SECONDARY_OTP: '@w3m-app/UPDATE_EMAIL_SECONDARY_OTP',\n APP_AWAIT_UPDATE_EMAIL: '@w3m-app/AWAIT_UPDATE_EMAIL',\n APP_SYNC_THEME: '@w3m-app/SYNC_THEME',\n APP_SYNC_DAPP_DATA: '@w3m-app/SYNC_DAPP_DATA',\n APP_GET_SMART_ACCOUNT_ENABLED_NETWORKS: '@w3m-app/GET_SMART_ACCOUNT_ENABLED_NETWORKS',\n APP_INIT_SMART_ACCOUNT: '@w3m-app/INIT_SMART_ACCOUNT',\n APP_SET_PREFERRED_ACCOUNT: '@w3m-app/SET_PREFERRED_ACCOUNT',\n APP_CONNECT_FARCASTER: '@w3m-app/CONNECT_FARCASTER',\n APP_GET_FARCASTER_URI: '@w3m-app/GET_FARCASTER_URI',\n APP_RELOAD: '@w3m-app/RELOAD',\n FRAME_SWITCH_NETWORK_ERROR: '@w3m-frame/SWITCH_NETWORK_ERROR',\n FRAME_SWITCH_NETWORK_SUCCESS: '@w3m-frame/SWITCH_NETWORK_SUCCESS',\n FRAME_CONNECT_EMAIL_ERROR: '@w3m-frame/CONNECT_EMAIL_ERROR',\n FRAME_CONNECT_EMAIL_SUCCESS: '@w3m-frame/CONNECT_EMAIL_SUCCESS',\n FRAME_CONNECT_DEVICE_ERROR: '@w3m-frame/CONNECT_DEVICE_ERROR',\n FRAME_CONNECT_DEVICE_SUCCESS: '@w3m-frame/CONNECT_DEVICE_SUCCESS',\n FRAME_CONNECT_OTP_SUCCESS: '@w3m-frame/CONNECT_OTP_SUCCESS',\n FRAME_CONNECT_OTP_ERROR: '@w3m-frame/CONNECT_OTP_ERROR',\n FRAME_CONNECT_SOCIAL_SUCCESS: '@w3m-frame/CONNECT_SOCIAL_SUCCESS',\n FRAME_CONNECT_SOCIAL_ERROR: '@w3m-frame/CONNECT_SOCIAL_ERROR',\n FRAME_CONNECT_FARCASTER_SUCCESS: '@w3m-frame/CONNECT_FARCASTER_SUCCESS',\n FRAME_CONNECT_FARCASTER_ERROR: '@w3m-frame/CONNECT_FARCASTER_ERROR',\n FRAME_GET_FARCASTER_URI_SUCCESS: '@w3m-frame/GET_FARCASTER_URI_SUCCESS',\n FRAME_GET_FARCASTER_URI_ERROR: '@w3m-frame/GET_FARCASTER_URI_ERROR',\n FRAME_GET_SOCIAL_REDIRECT_URI_SUCCESS: '@w3m-frame/GET_SOCIAL_REDIRECT_URI_SUCCESS',\n FRAME_GET_SOCIAL_REDIRECT_URI_ERROR: '@w3m-frame/GET_SOCIAL_REDIRECT_URI_ERROR',\n FRAME_GET_USER_SUCCESS: '@w3m-frame/GET_USER_SUCCESS',\n FRAME_GET_USER_ERROR: '@w3m-frame/GET_USER_ERROR',\n FRAME_SIGN_OUT_SUCCESS: '@w3m-frame/SIGN_OUT_SUCCESS',\n FRAME_SIGN_OUT_ERROR: '@w3m-frame/SIGN_OUT_ERROR',\n FRAME_IS_CONNECTED_SUCCESS: '@w3m-frame/IS_CONNECTED_SUCCESS',\n FRAME_IS_CONNECTED_ERROR: '@w3m-frame/IS_CONNECTED_ERROR',\n FRAME_GET_CHAIN_ID_SUCCESS: '@w3m-frame/GET_CHAIN_ID_SUCCESS',\n FRAME_GET_CHAIN_ID_ERROR: '@w3m-frame/GET_CHAIN_ID_ERROR',\n FRAME_RPC_REQUEST_SUCCESS: '@w3m-frame/RPC_REQUEST_SUCCESS',\n FRAME_RPC_REQUEST_ERROR: '@w3m-frame/RPC_REQUEST_ERROR',\n FRAME_SESSION_UPDATE: '@w3m-frame/SESSION_UPDATE',\n FRAME_UPDATE_EMAIL_SUCCESS: '@w3m-frame/UPDATE_EMAIL_SUCCESS',\n FRAME_UPDATE_EMAIL_ERROR: '@w3m-frame/UPDATE_EMAIL_ERROR',\n FRAME_UPDATE_EMAIL_PRIMARY_OTP_SUCCESS: '@w3m-frame/UPDATE_EMAIL_PRIMARY_OTP_SUCCESS',\n FRAME_UPDATE_EMAIL_PRIMARY_OTP_ERROR: '@w3m-frame/UPDATE_EMAIL_PRIMARY_OTP_ERROR',\n FRAME_UPDATE_EMAIL_SECONDARY_OTP_SUCCESS: '@w3m-frame/UPDATE_EMAIL_SECONDARY_OTP_SUCCESS',\n FRAME_UPDATE_EMAIL_SECONDARY_OTP_ERROR: '@w3m-frame/UPDATE_EMAIL_SECONDARY_OTP_ERROR',\n FRAME_SYNC_THEME_SUCCESS: '@w3m-frame/SYNC_THEME_SUCCESS',\n FRAME_SYNC_THEME_ERROR: '@w3m-frame/SYNC_THEME_ERROR',\n FRAME_SYNC_DAPP_DATA_SUCCESS: '@w3m-frame/SYNC_DAPP_DATA_SUCCESS',\n FRAME_SYNC_DAPP_DATA_ERROR: '@w3m-frame/SYNC_DAPP_DATA_ERROR',\n FRAME_GET_SMART_ACCOUNT_ENABLED_NETWORKS_SUCCESS: '@w3m-frame/GET_SMART_ACCOUNT_ENABLED_NETWORKS_SUCCESS',\n FRAME_GET_SMART_ACCOUNT_ENABLED_NETWORKS_ERROR: '@w3m-frame/GET_SMART_ACCOUNT_ENABLED_NETWORKS_ERROR',\n FRAME_INIT_SMART_ACCOUNT_SUCCESS: '@w3m-frame/INIT_SMART_ACCOUNT_SUCCESS',\n FRAME_INIT_SMART_ACCOUNT_ERROR: '@w3m-frame/INIT_SMART_ACCOUNT_ERROR',\n FRAME_SET_PREFERRED_ACCOUNT_SUCCESS: '@w3m-frame/SET_PREFERRED_ACCOUNT_SUCCESS',\n FRAME_SET_PREFERRED_ACCOUNT_ERROR: '@w3m-frame/SET_PREFERRED_ACCOUNT_ERROR',\n FRAME_READY: '@w3m-frame/READY',\n FRAME_RELOAD_SUCCESS: '@w3m-frame/RELOAD_SUCCESS',\n FRAME_RELOAD_ERROR: '@w3m-frame/RELOAD_ERROR',\n RPC_RESPONSE_TYPE_ERROR: 'RPC_RESPONSE_ERROR',\n RPC_RESPONSE_TYPE_TX: 'RPC_RESPONSE_TRANSACTION_HASH',\n RPC_RESPONSE_TYPE_OBJECT: 'RPC_RESPONSE_OBJECT'\n};\nexport const W3mFrameRpcConstants = {\n SAFE_RPC_METHODS: [\n 'eth_accounts',\n 'eth_blockNumber',\n 'eth_call',\n 'eth_chainId',\n 'eth_estimateGas',\n 'eth_feeHistory',\n 'eth_gasPrice',\n 'eth_getAccount',\n 'eth_getBalance',\n 'eth_getBlockByHash',\n 'eth_getBlockByNumber',\n 'eth_getBlockReceipts',\n 'eth_getBlockTransactionCountByHash',\n 'eth_getBlockTransactionCountByNumber',\n 'eth_getCode',\n 'eth_getFilterChanges',\n 'eth_getFilterLogs',\n 'eth_getLogs',\n 'eth_getProof',\n 'eth_getStorageAt',\n 'eth_getTransactionByBlockHashAndIndex',\n 'eth_getTransactionByBlockNumberAndIndex',\n 'eth_getTransactionByHash',\n 'eth_getTransactionCount',\n 'eth_getTransactionReceipt',\n 'eth_getUncleCountByBlockHash',\n 'eth_getUncleCountByBlockNumber',\n 'eth_maxPriorityFeePerGas',\n 'eth_newBlockFilter',\n 'eth_newFilter',\n 'eth_newPendingTransactionFilter',\n 'eth_sendRawTransaction',\n 'eth_syncing',\n 'eth_uninstallFilter',\n 'wallet_getCapabilities',\n 'wallet_getCallsStatus',\n 'eth_getUserOperationReceipt',\n 'eth_estimateUserOperationGas',\n 'eth_getUserOperationByHash',\n 'eth_supportedEntryPoints',\n 'wallet_getAssets'\n ],\n NOT_SAFE_RPC_METHODS: [\n 'personal_sign',\n 'eth_signTypedData_v4',\n 'eth_sendTransaction',\n 'solana_signMessage',\n 'solana_signTransaction',\n 'solana_signAllTransactions',\n 'solana_signAndSendTransaction',\n 'wallet_sendCalls',\n 'wallet_grantPermissions',\n 'wallet_revokePermissions',\n 'eth_sendUserOperation'\n ],\n GET_CHAIN_ID: 'eth_chainId',\n RPC_METHOD_NOT_ALLOWED_MESSAGE: 'Requested RPC call is not allowed',\n RPC_METHOD_NOT_ALLOWED_UI_MESSAGE: 'Action not allowed',\n ACCOUNT_TYPES: {\n EOA: 'eoa',\n SMART_ACCOUNT: 'smartAccount'\n }\n};\n//# sourceMappingURL=W3mFrameConstants.js.map","import { proxy } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\n// -- Constants ----------------------------------------- //\nconst DEFAULT_STATE = Object.freeze({\n message: '',\n variant: 'success',\n svg: undefined,\n open: false,\n autoClose: true\n});\n// -- State --------------------------------------------- //\nconst state = proxy({\n ...DEFAULT_STATE\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n showLoading(message, options = {}) {\n this._showMessage({ message, variant: 'loading', ...options });\n },\n showSuccess(message) {\n this._showMessage({ message, variant: 'success' });\n },\n showSvg(message, svg) {\n this._showMessage({ message, svg });\n },\n showError(message) {\n const errorMessage = CoreHelperUtil.parseError(message);\n this._showMessage({ message: errorMessage, variant: 'error' });\n },\n hide() {\n state.message = DEFAULT_STATE.message;\n state.variant = DEFAULT_STATE.variant;\n state.svg = DEFAULT_STATE.svg;\n state.open = DEFAULT_STATE.open;\n state.autoClose = DEFAULT_STATE.autoClose;\n },\n _showMessage({ message, svg, variant = 'success', autoClose = DEFAULT_STATE.autoClose }) {\n if (state.open) {\n state.open = false;\n setTimeout(() => {\n state.message = message;\n state.variant = variant;\n state.svg = svg;\n state.open = true;\n state.autoClose = autoClose;\n }, 150);\n }\n else {\n state.message = message;\n state.variant = variant;\n state.svg = svg;\n state.open = true;\n state.autoClose = autoClose;\n }\n }\n};\nexport const SnackController = controller;\n//# sourceMappingURL=SnackController.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { W3mFrameRpcConstants } from '@reown/appkit-wallet/utils';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { BlockchainApiController } from './BlockchainApiController.js';\nimport { ChainController } from './ChainController.js';\nimport { EventsController } from './EventsController.js';\nimport { OptionsController } from './OptionsController.js';\nimport { SnackController } from './SnackController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n transactions: [],\n coinbaseTransactions: {},\n transactionsByYear: {},\n lastNetworkInView: undefined,\n loading: false,\n empty: false,\n next: undefined\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n setLastNetworkInView(lastNetworkInView) {\n state.lastNetworkInView = lastNetworkInView;\n },\n async fetchTransactions(accountAddress, onramp) {\n if (!accountAddress) {\n throw new Error(\"Transactions can't be fetched without an accountAddress\");\n }\n state.loading = true;\n try {\n const response = await BlockchainApiController.fetchTransactions({\n account: accountAddress,\n cursor: state.next,\n onramp,\n // Coinbase transaction history state updates require the latest data\n cache: onramp === 'coinbase' ? 'no-cache' : undefined,\n chainId: ChainController.state.activeCaipNetwork?.caipNetworkId\n });\n const nonSpamTransactions = TransactionsController.filterSpamTransactions(response.data);\n const sameChainTransactions = TransactionsController.filterByConnectedChain(nonSpamTransactions);\n const filteredTransactions = [...state.transactions, ...sameChainTransactions];\n state.loading = false;\n if (onramp === 'coinbase') {\n state.coinbaseTransactions = TransactionsController.groupTransactionsByYearAndMonth(state.coinbaseTransactions, response.data);\n }\n else {\n state.transactions = filteredTransactions;\n state.transactionsByYear = TransactionsController.groupTransactionsByYearAndMonth(state.transactionsByYear, sameChainTransactions);\n }\n state.empty = filteredTransactions.length === 0;\n state.next = response.next ? response.next : undefined;\n }\n catch (error) {\n const activeChainNamespace = ChainController.state.activeChain;\n EventsController.sendEvent({\n type: 'track',\n event: 'ERROR_FETCH_TRANSACTIONS',\n properties: {\n address: accountAddress,\n projectId: OptionsController.state.projectId,\n cursor: state.next,\n isSmartAccount: AccountController.state.preferredAccountTypes?.[activeChainNamespace] ===\n W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT\n }\n });\n SnackController.showError('Failed to fetch transactions');\n state.loading = false;\n state.empty = true;\n state.next = undefined;\n }\n },\n groupTransactionsByYearAndMonth(transactionsMap = {}, transactions = []) {\n const grouped = transactionsMap;\n transactions.forEach(transaction => {\n const year = new Date(transaction.metadata.minedAt).getFullYear();\n const month = new Date(transaction.metadata.minedAt).getMonth();\n const yearTransactions = grouped[year] ?? {};\n const monthTransactions = yearTransactions[month] ?? [];\n // If there's a transaction with the same id, remove the old one\n const newMonthTransactions = monthTransactions.filter(tx => tx.id !== transaction.id);\n grouped[year] = {\n ...yearTransactions,\n [month]: [...newMonthTransactions, transaction].sort((a, b) => new Date(b.metadata.minedAt).getTime() - new Date(a.metadata.minedAt).getTime())\n };\n });\n return grouped;\n },\n filterSpamTransactions(transactions) {\n return transactions.filter(transaction => {\n const isAllSpam = transaction.transfers.every(transfer => transfer.nft_info?.flags.is_spam === true);\n return !isAllSpam;\n });\n },\n filterByConnectedChain(transactions) {\n const chainId = ChainController.state.activeCaipNetwork?.caipNetworkId;\n const filteredTransactions = transactions.filter(transaction => transaction.metadata.chain === chainId);\n return filteredTransactions;\n },\n clearCursor() {\n state.next = undefined;\n },\n resetTransactions() {\n state.transactions = [];\n state.transactionsByYear = {};\n state.lastNetworkInView = undefined;\n state.loading = false;\n state.empty = false;\n state.next = undefined;\n }\n};\n// Export the controller wrapped with our error boundary\nexport const TransactionsController = withErrorBoundary(controller, 'API_ERROR');\n//# sourceMappingURL=TransactionsController.js.map","/* eslint-disable no-console */\nimport { proxy, ref } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport {} from '@reown/appkit-common';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { StorageUtil } from '../utils/StorageUtil.js';\nimport { AppKitError, withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { ChainController } from './ChainController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { EventsController } from './EventsController.js';\nimport { ModalController } from './ModalController.js';\nimport { RouterController } from './RouterController.js';\nimport { TransactionsController } from './TransactionsController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n connections: new Map(),\n wcError: false,\n buffering: false,\n status: 'disconnected'\n});\n// eslint-disable-next-line init-declarations\nlet wcConnectionPromise;\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n _getClient() {\n return state._client;\n },\n setClient(client) {\n state._client = ref(client);\n },\n async connectWalletConnect() {\n if (CoreHelperUtil.isTelegram() || (CoreHelperUtil.isSafari() && CoreHelperUtil.isIos())) {\n if (wcConnectionPromise) {\n await wcConnectionPromise;\n wcConnectionPromise = undefined;\n return;\n }\n if (!CoreHelperUtil.isPairingExpired(state?.wcPairingExpiry)) {\n const link = state.wcUri;\n state.wcUri = link;\n return;\n }\n wcConnectionPromise = ConnectionController._getClient()\n ?.connectWalletConnect?.()\n .catch(() => undefined);\n ConnectionController.state.status = 'connecting';\n await wcConnectionPromise;\n wcConnectionPromise = undefined;\n state.wcPairingExpiry = undefined;\n ConnectionController.state.status = 'connected';\n }\n else {\n await ConnectionController._getClient()?.connectWalletConnect?.();\n }\n },\n async connectExternal(options, chain, setChain = true) {\n await ConnectionController._getClient()?.connectExternal?.(options);\n if (setChain) {\n ChainController.setActiveNamespace(chain);\n }\n },\n async reconnectExternal(options) {\n await ConnectionController._getClient()?.reconnectExternal?.(options);\n const namespace = options.chain || ChainController.state.activeChain;\n if (namespace) {\n ConnectorController.setConnectorId(options.id, namespace);\n }\n },\n async setPreferredAccountType(accountType, namespace) {\n ModalController.setLoading(true, ChainController.state.activeChain);\n const authConnector = ConnectorController.getAuthConnector();\n if (!authConnector) {\n return;\n }\n AccountController.setPreferredAccountType(accountType, namespace);\n await authConnector.provider.setPreferredAccount(accountType);\n StorageUtil.setPreferredAccountTypes(AccountController.state.preferredAccountTypes ?? { [namespace]: accountType });\n await ConnectionController.reconnectExternal(authConnector);\n ModalController.setLoading(false, ChainController.state.activeChain);\n EventsController.sendEvent({\n type: 'track',\n event: 'SET_PREFERRED_ACCOUNT_TYPE',\n properties: {\n accountType,\n network: ChainController.state.activeCaipNetwork?.caipNetworkId || ''\n }\n });\n },\n async signMessage(message) {\n return ConnectionController._getClient()?.signMessage(message);\n },\n parseUnits(value, decimals) {\n return ConnectionController._getClient()?.parseUnits(value, decimals);\n },\n formatUnits(value, decimals) {\n return ConnectionController._getClient()?.formatUnits(value, decimals);\n },\n async sendTransaction(args) {\n return ConnectionController._getClient()?.sendTransaction(args);\n },\n async getCapabilities(params) {\n return ConnectionController._getClient()?.getCapabilities(params);\n },\n async grantPermissions(params) {\n return ConnectionController._getClient()?.grantPermissions(params);\n },\n async walletGetAssets(params) {\n return ConnectionController._getClient()?.walletGetAssets(params) ?? {};\n },\n async estimateGas(args) {\n return ConnectionController._getClient()?.estimateGas(args);\n },\n async writeContract(args) {\n return ConnectionController._getClient()?.writeContract(args);\n },\n async getEnsAddress(value) {\n return ConnectionController._getClient()?.getEnsAddress(value);\n },\n async getEnsAvatar(value) {\n return ConnectionController._getClient()?.getEnsAvatar(value);\n },\n checkInstalled(ids) {\n return ConnectionController._getClient()?.checkInstalled?.(ids) || false;\n },\n resetWcConnection() {\n state.wcUri = undefined;\n state.wcPairingExpiry = undefined;\n state.wcLinking = undefined;\n state.recentWallet = undefined;\n state.status = 'disconnected';\n TransactionsController.resetTransactions();\n StorageUtil.deleteWalletConnectDeepLink();\n },\n resetUri() {\n state.wcUri = undefined;\n state.wcPairingExpiry = undefined;\n wcConnectionPromise = undefined;\n },\n finalizeWcConnection() {\n const { wcLinking, recentWallet } = ConnectionController.state;\n if (wcLinking) {\n StorageUtil.setWalletConnectDeepLink(wcLinking);\n }\n if (recentWallet) {\n StorageUtil.setAppKitRecent(recentWallet);\n }\n EventsController.sendEvent({\n type: 'track',\n event: 'CONNECT_SUCCESS',\n properties: {\n method: wcLinking ? 'mobile' : 'qrcode',\n name: RouterController.state.data?.wallet?.name || 'Unknown'\n }\n });\n },\n setWcBasic(wcBasic) {\n state.wcBasic = wcBasic;\n },\n setUri(uri) {\n state.wcUri = uri;\n state.wcPairingExpiry = CoreHelperUtil.getPairingExpiry();\n },\n setWcLinking(wcLinking) {\n state.wcLinking = wcLinking;\n },\n setWcError(wcError) {\n state.wcError = wcError;\n state.buffering = false;\n },\n setRecentWallet(wallet) {\n state.recentWallet = wallet;\n },\n setBuffering(buffering) {\n state.buffering = buffering;\n },\n setStatus(status) {\n state.status = status;\n },\n async disconnect(namespace) {\n try {\n await ConnectionController._getClient()?.disconnect(namespace);\n }\n catch (error) {\n throw new AppKitError('Failed to disconnect', 'INTERNAL_SDK_ERROR', error);\n }\n },\n setConnections(connections, chainNamespace) {\n state.connections.set(chainNamespace, connections);\n },\n switchAccount({ connection, address, namespace }) {\n const connectedConnectorId = ConnectorController.state.activeConnectorIds[namespace];\n const isConnectorConnected = connectedConnectorId === connection.connectorId;\n if (isConnectorConnected) {\n const currentNetwork = ChainController.state.activeCaipNetwork;\n if (currentNetwork) {\n const caipAddress = `${namespace}:${currentNetwork.id}:${address}`;\n AccountController.setCaipAddress(caipAddress, namespace);\n }\n else {\n console.warn(`No current network found for namespace \"${namespace}\"`);\n }\n }\n else {\n const connector = ConnectorController.getConnector(connection.connectorId);\n if (connector) {\n ConnectionController.connectExternal(connector, namespace);\n }\n else {\n console.warn(`No connector found for namespace \"${namespace}\"`);\n }\n }\n }\n};\n// Export the controller wrapped with our error boundary\nexport const ConnectionController = withErrorBoundary(controller);\n//# sourceMappingURL=ConnectionController.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey } from 'valtio/vanilla/utils';\n// -- State --------------------------------------------- //\nconst state = proxy({\n loading: false,\n open: false,\n selectedNetworkId: undefined,\n activeChain: undefined,\n initialized: false\n});\n// -- Controller ---------------------------------------- //\nexport const PublicStateController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeOpen(callback) {\n return subscribeKey(state, 'open', callback);\n },\n set(newState) {\n Object.assign(state, { ...state, ...newState });\n }\n};\n//# sourceMappingURL=PublicStateController.js.map","import { formatUnits } from 'viem';\nexport const ERC7811Utils = {\n /**\n * Creates a Balance object from an ERC7811 Asset object\n * @param asset - Asset object to convert\n * @param chainId - Chain ID in CAIP-2 format\n * @returns Balance object\n */\n createBalance(asset, chainId) {\n const metadata = {\n name: (asset.metadata['name'] || ''),\n symbol: (asset.metadata['symbol'] || ''),\n decimals: (asset.metadata['decimals'] || 0),\n value: (asset.metadata['value'] || 0),\n price: (asset.metadata['price'] || 0),\n iconUrl: (asset.metadata['iconUrl'] || '')\n };\n return {\n name: metadata.name,\n symbol: metadata.symbol,\n chainId,\n address: asset.address === 'native'\n ? undefined\n : this.convertAddressToCAIP10Address(asset.address, chainId),\n value: metadata.value,\n price: metadata.price,\n quantity: {\n decimals: metadata.decimals.toString(),\n numeric: this.convertHexToBalance({\n hex: asset.balance,\n decimals: metadata.decimals\n })\n },\n iconUrl: metadata.iconUrl\n };\n },\n /**\n * Converts a hex string to a Balance object\n * @param hex - Hex string to convert\n * @param decimals - Number of decimals to use\n * @returns Balance object\n */\n convertHexToBalance({ hex, decimals }) {\n return formatUnits(BigInt(hex), decimals);\n },\n /**\n * Converts an address to a CAIP-10 address\n * @param address - Address to convert\n * @param chainId - Chain ID in CAIP-2 format\n * @returns CAIP-10 address\n */\n convertAddressToCAIP10Address(address, chainId) {\n return `${chainId}:${address}`;\n },\n /**\n * Creates a CAIP-2 Chain ID from a chain ID and namespace\n * @param chainId - Chain ID in hex format\n * @param namespace - Chain namespace\n * @returns\n */\n createCAIP2ChainId(chainId, namespace) {\n return `${namespace}:${parseInt(chainId, 16)}`;\n },\n /**\n * Gets the chain ID in hex format from a CAIP-2 Chain ID\n * @param caip2ChainId - CAIP-2 Chain ID\n * @returns Chain ID in hex format\n */\n getChainIdHexFromCAIP2ChainId(caip2ChainId) {\n const parts = caip2ChainId.split(':');\n if (parts.length < 2 || !parts[1]) {\n return '0x0';\n }\n const chainPart = parts[1];\n const parsed = parseInt(chainPart, 10);\n return isNaN(parsed) ? '0x0' : `0x${parsed.toString(16)}`;\n },\n /**\n * Checks if a response is a valid WalletGetAssetsResponse\n * @param response - The response to check\n * @returns True if the response is a valid WalletGetAssetsResponse, false otherwise\n */\n isWalletGetAssetsResponse(response) {\n // Check if response is an object and has the expected structure\n if (typeof response !== 'object' || response === null) {\n return false;\n }\n // Check if all values are arrays and conform to the expected asset structure\n return Object.values(response).every(value => Array.isArray(value) && value.every(asset => this.isValidAsset(asset)));\n },\n /**\n * Checks if an asset object is valid.\n * @param asset - The asset object to check.\n * @returns True if the asset is valid, false otherwise.\n */\n isValidAsset(asset) {\n return (typeof asset === 'object' &&\n asset !== null &&\n typeof asset.address === 'string' &&\n typeof asset.balance === 'string' &&\n (asset.type === 'ERC20' || asset.type === 'NATIVE') &&\n typeof asset.metadata === 'object' &&\n asset.metadata !== null &&\n typeof asset.metadata['name'] === 'string' &&\n typeof asset.metadata['symbol'] === 'string' &&\n typeof asset.metadata['decimals'] === 'number' &&\n typeof asset.metadata['price'] === 'number' &&\n typeof asset.metadata['iconUrl'] === 'string');\n }\n};\n//# sourceMappingURL=ERC7811Util.js.map","import { AccountController } from '../controllers/AccountController.js';\nimport { BlockchainApiController } from '../controllers/BlockchainApiController.js';\nimport { ChainController } from '../controllers/ChainController.js';\nimport { ConnectionController } from '../controllers/ConnectionController.js';\nimport { ERC7811Utils } from './ERC7811Util.js';\n// -- Controller ---------------------------------------- //\nexport const SendApiUtil = {\n async getMyTokensWithBalance(forceUpdate) {\n const address = AccountController.state.address;\n const caipNetwork = ChainController.state.activeCaipNetwork;\n if (!address || !caipNetwork) {\n return [];\n }\n // Extract EIP-155 specific logic\n if (caipNetwork.chainNamespace === 'eip155') {\n const eip155Balances = await this.getEIP155Balances(address, caipNetwork);\n if (eip155Balances) {\n return this.filterLowQualityTokens(eip155Balances);\n }\n }\n // Fallback to 1Inch API\n const response = await BlockchainApiController.getBalance(address, caipNetwork.caipNetworkId, forceUpdate);\n return this.filterLowQualityTokens(response.balances);\n },\n async getEIP155Balances(address, caipNetwork) {\n try {\n const chainIdHex = ERC7811Utils.getChainIdHexFromCAIP2ChainId(caipNetwork.caipNetworkId);\n const walletCapabilities = (await ConnectionController.getCapabilities(address));\n if (!walletCapabilities?.[chainIdHex]?.['assetDiscovery']?.supported) {\n return null;\n }\n const walletGetAssetsResponse = await ConnectionController.walletGetAssets({\n account: address,\n chainFilter: [chainIdHex]\n });\n if (!ERC7811Utils.isWalletGetAssetsResponse(walletGetAssetsResponse)) {\n return null;\n }\n const assets = walletGetAssetsResponse[chainIdHex] || [];\n return assets.map(asset => ERC7811Utils.createBalance(asset, caipNetwork.caipNetworkId));\n }\n catch (error) {\n return null;\n }\n },\n /**\n * The 1Inch API includes many low-quality tokens in the balance response,\n * which appear inconsistently. This filter prevents them from being displayed.\n */\n filterLowQualityTokens(balances) {\n return balances.filter(balance => balance.quantity.decimals !== '0');\n },\n mapBalancesToSwapTokens(balances) {\n return (balances?.map(token => ({\n ...token,\n address: token?.address\n ? token.address\n : ChainController.getActiveNetworkTokenAddress(),\n decimals: parseInt(token.quantity.decimals, 10),\n logoUri: token.iconUrl,\n eip2612: false\n })) || []);\n }\n};\n//# sourceMappingURL=SendApiUtil.js.map","import { proxy, ref, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { NumberUtil } from '@reown/appkit-common';\nimport { ContractUtil } from '@reown/appkit-common';\nimport { W3mFrameRpcConstants } from '@reown/appkit-wallet/utils';\nimport { ConstantsUtil } from '../utils/ConstantsUtil.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { SendApiUtil } from '../utils/SendApiUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { ChainController } from './ChainController.js';\nimport { ConnectionController } from './ConnectionController.js';\nimport { EventsController } from './EventsController.js';\nimport { RouterController } from './RouterController.js';\nimport { SnackController } from './SnackController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n tokenBalances: [],\n loading: false\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n setToken(token) {\n if (token) {\n state.token = ref(token);\n }\n },\n setTokenAmount(sendTokenAmount) {\n state.sendTokenAmount = sendTokenAmount;\n },\n setReceiverAddress(receiverAddress) {\n state.receiverAddress = receiverAddress;\n },\n setReceiverProfileImageUrl(receiverProfileImageUrl) {\n state.receiverProfileImageUrl = receiverProfileImageUrl;\n },\n setReceiverProfileName(receiverProfileName) {\n state.receiverProfileName = receiverProfileName;\n },\n setNetworkBalanceInUsd(networkBalanceInUSD) {\n state.networkBalanceInUSD = networkBalanceInUSD;\n },\n setLoading(loading) {\n state.loading = loading;\n },\n async sendToken() {\n try {\n SendController.setLoading(true);\n switch (ChainController.state.activeCaipNetwork?.chainNamespace) {\n case 'eip155':\n await SendController.sendEvmToken();\n return;\n case 'solana':\n await SendController.sendSolanaToken();\n return;\n default:\n throw new Error('Unsupported chain');\n }\n }\n finally {\n SendController.setLoading(false);\n }\n },\n async sendEvmToken() {\n const activeChainNamespace = ChainController.state.activeChain;\n const activeAccountType = AccountController.state.preferredAccountTypes?.[activeChainNamespace];\n if (!SendController.state.sendTokenAmount || !SendController.state.receiverAddress) {\n throw new Error('An amount and receiver address are required');\n }\n if (!SendController.state.token) {\n throw new Error('A token is required');\n }\n if (SendController.state.token?.address) {\n EventsController.sendEvent({\n type: 'track',\n event: 'SEND_INITIATED',\n properties: {\n isSmartAccount: activeAccountType === W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT,\n token: SendController.state.token.address,\n amount: SendController.state.sendTokenAmount,\n network: ChainController.state.activeCaipNetwork?.caipNetworkId || ''\n }\n });\n await SendController.sendERC20Token({\n receiverAddress: SendController.state.receiverAddress,\n tokenAddress: SendController.state.token.address,\n sendTokenAmount: SendController.state.sendTokenAmount,\n decimals: SendController.state.token.quantity.decimals\n });\n }\n else {\n EventsController.sendEvent({\n type: 'track',\n event: 'SEND_INITIATED',\n properties: {\n isSmartAccount: activeAccountType === W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT,\n token: SendController.state.token.symbol || '',\n amount: SendController.state.sendTokenAmount,\n network: ChainController.state.activeCaipNetwork?.caipNetworkId || ''\n }\n });\n await SendController.sendNativeToken({\n receiverAddress: SendController.state.receiverAddress,\n sendTokenAmount: SendController.state.sendTokenAmount,\n decimals: SendController.state.token.quantity.decimals\n });\n }\n },\n async fetchTokenBalance(onError) {\n state.loading = true;\n const chainId = ChainController.state.activeCaipNetwork?.caipNetworkId;\n const chain = ChainController.state.activeCaipNetwork?.chainNamespace;\n const caipAddress = ChainController.state.activeCaipAddress;\n const address = caipAddress ? CoreHelperUtil.getPlainAddress(caipAddress) : undefined;\n if (state.lastRetry &&\n !CoreHelperUtil.isAllowedRetry(state.lastRetry, 30 * ConstantsUtil.ONE_SEC_MS)) {\n state.loading = false;\n return [];\n }\n try {\n if (address && chainId && chain) {\n const balances = await SendApiUtil.getMyTokensWithBalance();\n state.tokenBalances = balances;\n state.lastRetry = undefined;\n return balances;\n }\n }\n catch (error) {\n state.lastRetry = Date.now();\n onError?.(error);\n SnackController.showError('Token Balance Unavailable');\n }\n finally {\n state.loading = false;\n }\n return [];\n },\n fetchNetworkBalance() {\n if (state.tokenBalances.length === 0) {\n return;\n }\n const networkTokenBalances = SendApiUtil.mapBalancesToSwapTokens(state.tokenBalances);\n if (!networkTokenBalances) {\n return;\n }\n const networkToken = networkTokenBalances.find(token => token.address === ChainController.getActiveNetworkTokenAddress());\n if (!networkToken) {\n return;\n }\n state.networkBalanceInUSD = networkToken\n ? NumberUtil.multiply(networkToken.quantity.numeric, networkToken.price).toString()\n : '0';\n },\n async sendNativeToken(params) {\n RouterController.pushTransactionStack({});\n const to = params.receiverAddress;\n const address = AccountController.state.address;\n const value = ConnectionController.parseUnits(params.sendTokenAmount.toString(), Number(params.decimals));\n const data = '0x';\n await ConnectionController.sendTransaction({\n chainNamespace: 'eip155',\n to,\n address,\n data,\n value: value ?? BigInt(0)\n });\n EventsController.sendEvent({\n type: 'track',\n event: 'SEND_SUCCESS',\n properties: {\n isSmartAccount: AccountController.state.preferredAccountTypes?.['eip155'] ===\n W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT,\n token: SendController.state.token?.symbol || '',\n amount: params.sendTokenAmount,\n network: ChainController.state.activeCaipNetwork?.caipNetworkId || ''\n }\n });\n ConnectionController._getClient()?.updateBalance('eip155');\n SendController.resetSend();\n },\n async sendERC20Token(params) {\n RouterController.pushTransactionStack({\n onSuccess() {\n RouterController.replace('Account');\n }\n });\n const amount = ConnectionController.parseUnits(params.sendTokenAmount.toString(), Number(params.decimals));\n if (AccountController.state.address &&\n params.sendTokenAmount &&\n params.receiverAddress &&\n params.tokenAddress) {\n const tokenAddress = CoreHelperUtil.getPlainAddress(params.tokenAddress);\n await ConnectionController.writeContract({\n fromAddress: AccountController.state.address,\n tokenAddress,\n args: [params.receiverAddress, amount ?? BigInt(0)],\n method: 'transfer',\n abi: ContractUtil.getERC20Abi(tokenAddress),\n chainNamespace: 'eip155'\n });\n SendController.resetSend();\n }\n },\n async sendSolanaToken() {\n if (!SendController.state.sendTokenAmount || !SendController.state.receiverAddress) {\n throw new Error('An amount and receiver address are required');\n }\n RouterController.pushTransactionStack({\n onSuccess() {\n RouterController.replace('Account');\n }\n });\n await ConnectionController.sendTransaction({\n chainNamespace: 'solana',\n to: SendController.state.receiverAddress,\n value: SendController.state.sendTokenAmount\n });\n ConnectionController._getClient()?.updateBalance('solana');\n SendController.resetSend();\n },\n resetSend() {\n state.token = undefined;\n state.sendTokenAmount = undefined;\n state.receiverAddress = undefined;\n state.receiverProfileImageUrl = undefined;\n state.receiverProfileName = undefined;\n state.loading = false;\n state.tokenBalances = [];\n }\n};\n// Export the controller wrapped with our error boundary\nexport const SendController = withErrorBoundary(controller);\n//# sourceMappingURL=SendController.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { proxyMap, subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { ConstantsUtil as CommonConstantsUtil, NetworkUtil } from '@reown/appkit-common';\nimport { ConstantsUtil } from '../utils/ConstantsUtil.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { StorageUtil } from '../utils/StorageUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { ConnectionController } from './ConnectionController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { EventsController } from './EventsController.js';\nimport { ModalController } from './ModalController.js';\nimport { OptionsController } from './OptionsController.js';\nimport { PublicStateController } from './PublicStateController.js';\nimport { RouterController } from './RouterController.js';\nimport { SendController } from './SendController.js';\n// -- Constants ----------------------------------------- //\nconst accountState = {\n currentTab: 0,\n tokenBalance: [],\n smartAccountDeployed: false,\n addressLabels: new Map(),\n allAccounts: [],\n user: undefined\n};\nconst networkState = {\n caipNetwork: undefined,\n supportsAllNetworks: true,\n smartAccountEnabledNetworks: []\n};\n// -- State --------------------------------------------- //\nconst state = proxy({\n chains: proxyMap(),\n activeCaipAddress: undefined,\n activeChain: undefined,\n activeCaipNetwork: undefined,\n noAdapters: false,\n universalAdapter: {\n networkControllerClient: undefined,\n connectionControllerClient: undefined\n },\n isSwitchingNamespace: false\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribe(callback) {\n return sub(state, () => {\n callback(state);\n });\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n subscribeChainProp(property, callback, chain) {\n let prev = undefined;\n return sub(state.chains, () => {\n const activeChain = chain || state.activeChain;\n if (activeChain) {\n const nextValue = state.chains.get(activeChain)?.[property];\n if (prev !== nextValue) {\n prev = nextValue;\n callback(nextValue);\n }\n }\n });\n },\n initialize(adapters, caipNetworks, clients) {\n const { chainId: activeChainId, namespace: activeNamespace } = StorageUtil.getActiveNetworkProps();\n const activeCaipNetwork = caipNetworks?.find(network => network.id.toString() === activeChainId?.toString());\n const defaultAdapter = adapters.find(adapter => adapter?.namespace === activeNamespace);\n const adapterToActivate = defaultAdapter || adapters?.[0];\n const namespacesFromAdapters = adapters.map(a => a.namespace).filter(n => n !== undefined);\n /**\n * If the AppKit is in embedded mode (for Demo app), we should get the available namespaces from the adapters.\n */\n const namespaces = OptionsController.state.enableEmbedded\n ? new Set([...namespacesFromAdapters])\n : new Set([...(caipNetworks?.map(network => network.chainNamespace) ?? [])]);\n if (adapters?.length === 0 || !adapterToActivate) {\n state.noAdapters = true;\n }\n if (!state.noAdapters) {\n state.activeChain = adapterToActivate?.namespace;\n state.activeCaipNetwork = activeCaipNetwork;\n ChainController.setChainNetworkData(adapterToActivate?.namespace, {\n caipNetwork: activeCaipNetwork\n });\n if (state.activeChain) {\n PublicStateController.set({ activeChain: adapterToActivate?.namespace });\n }\n }\n namespaces.forEach(namespace => {\n const namespaceNetworks = caipNetworks?.filter(network => network.chainNamespace === namespace);\n ChainController.state.chains.set(namespace, {\n namespace,\n networkState: proxy({\n ...networkState,\n caipNetwork: namespaceNetworks?.[0]\n }),\n accountState: proxy(accountState),\n caipNetworks: namespaceNetworks ?? [],\n ...clients\n });\n ChainController.setRequestedCaipNetworks(namespaceNetworks ?? [], namespace);\n });\n },\n removeAdapter(namespace) {\n if (state.activeChain === namespace) {\n const nextAdapter = Array.from(state.chains.entries()).find(([chainNamespace]) => chainNamespace !== namespace);\n if (nextAdapter) {\n const caipNetwork = nextAdapter[1]?.caipNetworks?.[0];\n if (caipNetwork) {\n ChainController.setActiveCaipNetwork(caipNetwork);\n }\n }\n }\n state.chains.delete(namespace);\n },\n addAdapter(adapter, { networkControllerClient, connectionControllerClient }, caipNetworks) {\n state.chains.set(adapter.namespace, {\n namespace: adapter.namespace,\n networkState: {\n ...networkState,\n caipNetwork: caipNetworks[0]\n },\n accountState,\n caipNetworks,\n connectionControllerClient,\n networkControllerClient\n });\n ChainController.setRequestedCaipNetworks(caipNetworks?.filter(caipNetwork => caipNetwork.chainNamespace === adapter.namespace) ?? [], adapter.namespace);\n },\n addNetwork(network) {\n const chainAdapter = state.chains.get(network.chainNamespace);\n if (chainAdapter) {\n const newNetworks = [...(chainAdapter.caipNetworks || [])];\n if (!chainAdapter.caipNetworks?.find(caipNetwork => caipNetwork.id === network.id)) {\n newNetworks.push(network);\n }\n state.chains.set(network.chainNamespace, { ...chainAdapter, caipNetworks: newNetworks });\n ChainController.setRequestedCaipNetworks(newNetworks, network.chainNamespace);\n ConnectorController.filterByNamespace(network.chainNamespace, true);\n }\n },\n removeNetwork(namespace, networkId) {\n const chainAdapter = state.chains.get(namespace);\n if (chainAdapter) {\n // Check if network being removed is active network\n const isActiveNetwork = state.activeCaipNetwork?.id === networkId;\n // Filter out the network being removed\n const newCaipNetworksOfAdapter = [\n ...(chainAdapter.caipNetworks?.filter(network => network.id !== networkId) || [])\n ];\n // If active network was removed and there are other networks available, switch to first one\n if (isActiveNetwork && chainAdapter?.caipNetworks?.[0]) {\n ChainController.setActiveCaipNetwork(chainAdapter.caipNetworks[0]);\n }\n state.chains.set(namespace, { ...chainAdapter, caipNetworks: newCaipNetworksOfAdapter });\n ChainController.setRequestedCaipNetworks(newCaipNetworksOfAdapter || [], namespace);\n if (newCaipNetworksOfAdapter.length === 0) {\n ConnectorController.filterByNamespace(namespace, false);\n }\n }\n },\n setAdapterNetworkState(chain, props) {\n const chainAdapter = state.chains.get(chain);\n if (chainAdapter) {\n chainAdapter.networkState = {\n ...(chainAdapter.networkState || networkState),\n ...props\n };\n state.chains.set(chain, chainAdapter);\n }\n },\n setChainAccountData(chain, accountProps, _unknown = true) {\n if (!chain) {\n throw new Error('Chain is required to update chain account data');\n }\n const chainAdapter = state.chains.get(chain);\n if (chainAdapter) {\n const newAccountState = { ...(chainAdapter.accountState || accountState), ...accountProps };\n state.chains.set(chain, { ...chainAdapter, accountState: newAccountState });\n if (state.chains.size === 1 || state.activeChain === chain) {\n if (accountProps.caipAddress) {\n state.activeCaipAddress = accountProps.caipAddress;\n }\n AccountController.replaceState(newAccountState);\n }\n }\n },\n setChainNetworkData(chain, networkProps) {\n if (!chain) {\n return;\n }\n const chainAdapter = state.chains.get(chain);\n if (chainAdapter) {\n const newNetworkState = { ...(chainAdapter.networkState || networkState), ...networkProps };\n state.chains.set(chain, { ...chainAdapter, networkState: newNetworkState });\n }\n },\n // eslint-disable-next-line max-params\n setAccountProp(prop, value, chain, replaceState = true) {\n ChainController.setChainAccountData(chain, { [prop]: value }, replaceState);\n if (prop === 'status' && value === 'disconnected' && chain) {\n ConnectorController.removeConnectorId(chain);\n }\n },\n setActiveNamespace(chain) {\n state.activeChain = chain;\n const newAdapter = chain ? state.chains.get(chain) : undefined;\n const caipNetwork = newAdapter?.networkState?.caipNetwork;\n if (caipNetwork?.id && chain) {\n state.activeCaipAddress = newAdapter?.accountState?.caipAddress;\n state.activeCaipNetwork = caipNetwork;\n ChainController.setChainNetworkData(chain, { caipNetwork });\n StorageUtil.setActiveCaipNetworkId(caipNetwork?.caipNetworkId);\n PublicStateController.set({\n activeChain: chain,\n selectedNetworkId: caipNetwork?.caipNetworkId\n });\n }\n },\n setActiveCaipNetwork(caipNetwork) {\n if (!caipNetwork) {\n return;\n }\n if (state.activeChain !== caipNetwork.chainNamespace) {\n ChainController.setIsSwitchingNamespace(true);\n }\n const newAdapter = state.chains.get(caipNetwork.chainNamespace);\n state.activeChain = caipNetwork.chainNamespace;\n state.activeCaipNetwork = caipNetwork;\n ChainController.setChainNetworkData(caipNetwork.chainNamespace, { caipNetwork });\n if (newAdapter?.accountState?.address) {\n state.activeCaipAddress = `${caipNetwork.chainNamespace}:${caipNetwork.id}:${newAdapter?.accountState?.address}`;\n }\n else {\n state.activeCaipAddress = undefined;\n }\n // Update the chain's account state with the new caip address value\n ChainController.setAccountProp('caipAddress', state.activeCaipAddress, caipNetwork.chainNamespace);\n if (newAdapter) {\n AccountController.replaceState(newAdapter.accountState);\n }\n // Reset send state when switching networks\n SendController.resetSend();\n PublicStateController.set({\n activeChain: state.activeChain,\n selectedNetworkId: state.activeCaipNetwork?.caipNetworkId\n });\n StorageUtil.setActiveCaipNetworkId(caipNetwork.caipNetworkId);\n const isSupported = ChainController.checkIfSupportedNetwork(caipNetwork.chainNamespace);\n if (!isSupported &&\n OptionsController.state.enableNetworkSwitch &&\n !OptionsController.state.allowUnsupportedChain &&\n !ConnectionController.state.wcBasic) {\n ChainController.showUnsupportedChainUI();\n }\n },\n addCaipNetwork(caipNetwork) {\n if (!caipNetwork) {\n return;\n }\n const chain = state.chains.get(caipNetwork.chainNamespace);\n if (chain) {\n chain?.caipNetworks?.push(caipNetwork);\n }\n },\n async switchActiveNamespace(namespace) {\n if (!namespace) {\n return;\n }\n const isDifferentChain = namespace !== ChainController.state.activeChain;\n const caipNetworkOfNamespace = ChainController.getNetworkData(namespace)?.caipNetwork;\n const firstNetworkWithChain = ChainController.getCaipNetworkByNamespace(namespace, caipNetworkOfNamespace?.id);\n if (isDifferentChain && firstNetworkWithChain) {\n await ChainController.switchActiveNetwork(firstNetworkWithChain);\n }\n },\n async switchActiveNetwork(network) {\n const activeAdapter = ChainController.state.chains.get(ChainController.state.activeChain);\n const unsupportedNetwork = !activeAdapter?.caipNetworks?.some(caipNetwork => caipNetwork.id === state.activeCaipNetwork?.id);\n const networkControllerClient = ChainController.getNetworkControllerClient(network.chainNamespace);\n if (networkControllerClient) {\n try {\n await networkControllerClient.switchCaipNetwork(network);\n if (unsupportedNetwork) {\n ModalController.close();\n }\n }\n catch (error) {\n RouterController.goBack();\n }\n EventsController.sendEvent({\n type: 'track',\n event: 'SWITCH_NETWORK',\n properties: { network: network.caipNetworkId }\n });\n }\n },\n getNetworkControllerClient(chainNamespace) {\n const chain = chainNamespace || state.activeChain;\n const chainAdapter = state.chains.get(chain);\n if (!chainAdapter) {\n throw new Error('Chain adapter not found');\n }\n if (!chainAdapter.networkControllerClient) {\n throw new Error('NetworkController client not set');\n }\n return chainAdapter.networkControllerClient;\n },\n getConnectionControllerClient(_chain) {\n const chain = _chain || state.activeChain;\n if (!chain) {\n throw new Error('Chain is required to get connection controller client');\n }\n const chainAdapter = state.chains.get(chain);\n if (!chainAdapter?.connectionControllerClient) {\n throw new Error('ConnectionController client not set');\n }\n return chainAdapter.connectionControllerClient;\n },\n getAccountProp(key, _chain) {\n let chain = state.activeChain;\n if (_chain) {\n chain = _chain;\n }\n if (!chain) {\n return undefined;\n }\n const chainAccountState = state.chains.get(chain)?.accountState;\n if (!chainAccountState) {\n return undefined;\n }\n return chainAccountState[key];\n },\n getNetworkProp(key, namespace) {\n const chainNetworkState = state.chains.get(namespace)?.networkState;\n if (!chainNetworkState) {\n return undefined;\n }\n return chainNetworkState[key];\n },\n getRequestedCaipNetworks(chainToFilter) {\n const adapter = state.chains.get(chainToFilter);\n const { approvedCaipNetworkIds = [], requestedCaipNetworks = [] } = adapter?.networkState || {};\n const sortedNetworks = CoreHelperUtil.sortRequestedNetworks(approvedCaipNetworkIds, requestedCaipNetworks);\n return sortedNetworks;\n },\n getAllRequestedCaipNetworks() {\n const requestedCaipNetworks = [];\n state.chains.forEach(chainAdapter => {\n const caipNetworks = ChainController.getRequestedCaipNetworks(chainAdapter.namespace);\n requestedCaipNetworks.push(...caipNetworks);\n });\n return requestedCaipNetworks;\n },\n setRequestedCaipNetworks(caipNetworks, chain) {\n ChainController.setAdapterNetworkState(chain, { requestedCaipNetworks: caipNetworks });\n const allRequestedCaipNetworks = ChainController.getAllRequestedCaipNetworks();\n const namespaces = allRequestedCaipNetworks.map(network => network.chainNamespace);\n const uniqueNamespaces = Array.from(new Set(namespaces));\n ConnectorController.filterByNamespaces(uniqueNamespaces);\n },\n getAllApprovedCaipNetworkIds() {\n const approvedCaipNetworkIds = [];\n state.chains.forEach(chainAdapter => {\n const approvedIds = ChainController.getApprovedCaipNetworkIds(chainAdapter.namespace);\n approvedCaipNetworkIds.push(...approvedIds);\n });\n return approvedCaipNetworkIds;\n },\n getActiveCaipNetwork() {\n return state.activeCaipNetwork;\n },\n getActiveCaipAddress() {\n return state.activeCaipAddress;\n },\n getApprovedCaipNetworkIds(namespace) {\n const adapter = state.chains.get(namespace);\n const approvedCaipNetworkIds = adapter?.networkState?.approvedCaipNetworkIds || [];\n return approvedCaipNetworkIds;\n },\n async setApprovedCaipNetworksData(namespace) {\n const networkControllerClient = ChainController.getNetworkControllerClient();\n const data = await networkControllerClient?.getApprovedCaipNetworksData();\n ChainController.setAdapterNetworkState(namespace, {\n approvedCaipNetworkIds: data?.approvedCaipNetworkIds,\n supportsAllNetworks: data?.supportsAllNetworks\n });\n },\n checkIfSupportedNetwork(namespace, caipNetwork) {\n const activeCaipNetwork = caipNetwork || state.activeCaipNetwork;\n const requestedCaipNetworks = ChainController.getRequestedCaipNetworks(namespace);\n if (!requestedCaipNetworks.length) {\n return true;\n }\n return requestedCaipNetworks?.some(network => network.id === activeCaipNetwork?.id);\n },\n checkIfSupportedChainId(chainId) {\n if (!state.activeChain) {\n return true;\n }\n const requestedCaipNetworks = ChainController.getRequestedCaipNetworks(state.activeChain);\n return requestedCaipNetworks?.some(network => network.id === chainId);\n },\n // Smart Account Network Handlers\n setSmartAccountEnabledNetworks(smartAccountEnabledNetworks, chain) {\n ChainController.setAdapterNetworkState(chain, { smartAccountEnabledNetworks });\n },\n checkIfSmartAccountEnabled() {\n const networkId = NetworkUtil.caipNetworkIdToNumber(state.activeCaipNetwork?.caipNetworkId);\n const activeChain = state.activeChain;\n if (!activeChain || !networkId) {\n return false;\n }\n const smartAccountEnabledNetworks = ChainController.getNetworkProp('smartAccountEnabledNetworks', activeChain);\n return Boolean(smartAccountEnabledNetworks?.includes(Number(networkId)));\n },\n getActiveNetworkTokenAddress() {\n const namespace = state.activeCaipNetwork?.chainNamespace || 'eip155';\n const chainId = state.activeCaipNetwork?.id || 1;\n const address = ConstantsUtil.NATIVE_TOKEN_ADDRESS[namespace];\n return `${namespace}:${chainId}:${address}`;\n },\n showUnsupportedChainUI() {\n ModalController.open({ view: 'UnsupportedChain' });\n },\n checkIfNamesSupported() {\n const activeCaipNetwork = state.activeCaipNetwork;\n return Boolean(activeCaipNetwork?.chainNamespace &&\n ConstantsUtil.NAMES_SUPPORTED_CHAIN_NAMESPACES.includes(activeCaipNetwork.chainNamespace));\n },\n resetNetwork(namespace) {\n ChainController.setAdapterNetworkState(namespace, {\n approvedCaipNetworkIds: undefined,\n supportsAllNetworks: true,\n smartAccountEnabledNetworks: []\n });\n },\n resetAccount(chain) {\n const chainToWrite = chain;\n if (!chainToWrite) {\n throw new Error('Chain is required to set account prop');\n }\n state.activeCaipAddress = undefined;\n ChainController.setChainAccountData(chainToWrite, {\n smartAccountDeployed: false,\n currentTab: 0,\n caipAddress: undefined,\n address: undefined,\n balance: undefined,\n balanceSymbol: undefined,\n profileName: undefined,\n profileImage: undefined,\n addressExplorerUrl: undefined,\n tokenBalance: [],\n connectedWalletInfo: undefined,\n preferredAccountTypes: undefined,\n socialProvider: undefined,\n socialWindow: undefined,\n farcasterUrl: undefined,\n allAccounts: [],\n user: undefined,\n status: 'disconnected'\n });\n ConnectorController.removeConnectorId(chainToWrite);\n },\n setIsSwitchingNamespace(isSwitchingNamespace) {\n state.isSwitchingNamespace = isSwitchingNamespace;\n },\n getFirstCaipNetworkSupportsAuthConnector() {\n const availableChains = [];\n let firstCaipNetwork = undefined;\n state.chains.forEach(chain => {\n if (CommonConstantsUtil.AUTH_CONNECTOR_SUPPORTED_CHAINS.find(ns => ns === chain.namespace)) {\n if (chain.namespace) {\n availableChains.push(chain.namespace);\n }\n }\n });\n if (availableChains.length > 0) {\n const firstAvailableChain = availableChains[0];\n firstCaipNetwork = firstAvailableChain\n ? state.chains.get(firstAvailableChain)?.caipNetworks?.[0]\n : undefined;\n return firstCaipNetwork;\n }\n return undefined;\n },\n getAccountData(chainNamespace) {\n if (!chainNamespace) {\n return AccountController.state;\n }\n return ChainController.state.chains.get(chainNamespace)?.accountState;\n },\n getNetworkData(chainNamespace) {\n const namespace = chainNamespace || state.activeChain;\n if (!namespace) {\n return undefined;\n }\n return ChainController.state.chains.get(namespace)?.networkState;\n },\n getCaipNetworkByNamespace(chainNamespace, chainId) {\n if (!chainNamespace) {\n return undefined;\n }\n const chain = ChainController.state.chains.get(chainNamespace);\n const byChainId = chain?.caipNetworks?.find(network => network.id === chainId);\n if (byChainId) {\n return byChainId;\n }\n return chain?.networkState?.caipNetwork || chain?.caipNetworks?.[0];\n },\n /**\n * Get the requested CaipNetwork IDs for a given namespace. If namespace is not provided, all requested CaipNetwork IDs will be returned\n * @param namespace - The namespace to get the requested CaipNetwork IDs for\n * @returns The requested CaipNetwork IDs\n */\n getRequestedCaipNetworkIds() {\n const namespace = ConnectorController.state.filterByNamespace;\n const chains = namespace ? [state.chains.get(namespace)] : Array.from(state.chains.values());\n return chains\n .flatMap(chain => chain?.caipNetworks || [])\n .map(caipNetwork => caipNetwork.caipNetworkId);\n },\n getCaipNetworks(namespace) {\n if (namespace) {\n return ChainController.getRequestedCaipNetworks(namespace);\n }\n return ChainController.getAllRequestedCaipNetworks();\n }\n};\n// Export the controller wrapped with our error boundary\nexport const ChainController = withErrorBoundary(controller);\n//# sourceMappingURL=ChainController.js.map","import { proxy } from 'valtio/vanilla';\nimport { ConstantsUtil } from '../utils/ConstantsUtil.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { FetchUtil } from '../utils/FetchUtil.js';\nimport { StorageUtil } from '../utils/StorageUtil.js';\nimport { AccountController } from './AccountController.js';\nimport { ChainController } from './ChainController.js';\nimport { OptionsController } from './OptionsController.js';\nimport { SnackController } from './SnackController.js';\nconst DEFAULT_OPTIONS = {\n purchaseCurrencies: [\n {\n id: '2b92315d-eab7-5bef-84fa-089a131333f5',\n name: 'USD Coin',\n symbol: 'USDC',\n networks: [\n {\n name: 'ethereum-mainnet',\n display_name: 'Ethereum',\n chain_id: '1',\n contract_address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'\n },\n {\n name: 'polygon-mainnet',\n display_name: 'Polygon',\n chain_id: '137',\n contract_address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174'\n }\n ]\n },\n {\n id: '2b92315d-eab7-5bef-84fa-089a131333f5',\n name: 'Ether',\n symbol: 'ETH',\n networks: [\n {\n name: 'ethereum-mainnet',\n display_name: 'Ethereum',\n chain_id: '1',\n contract_address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'\n },\n {\n name: 'polygon-mainnet',\n display_name: 'Polygon',\n chain_id: '137',\n contract_address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174'\n }\n ]\n }\n ],\n paymentCurrencies: [\n {\n id: 'USD',\n payment_method_limits: [\n {\n id: 'card',\n min: '10.00',\n max: '7500.00'\n },\n {\n id: 'ach_bank_account',\n min: '10.00',\n max: '25000.00'\n }\n ]\n },\n {\n id: 'EUR',\n payment_method_limits: [\n {\n id: 'card',\n min: '10.00',\n max: '7500.00'\n },\n {\n id: 'ach_bank_account',\n min: '10.00',\n max: '25000.00'\n }\n ]\n }\n ]\n};\n// -- Helpers ------------------------------------------- //\nconst baseUrl = CoreHelperUtil.getBlockchainApiUrl();\n// -- State --------------------------------------------- //\nconst state = proxy({\n clientId: null,\n api: new FetchUtil({ baseUrl, clientId: null }),\n supportedChains: { http: [], ws: [] }\n});\n// -- Controller ---------------------------------------- //\nexport const BlockchainApiController = {\n state,\n async get(request) {\n const { st, sv } = BlockchainApiController.getSdkProperties();\n const projectId = OptionsController.state.projectId;\n const params = {\n ...(request.params || {}),\n st,\n sv,\n projectId\n };\n return state.api.get({\n ...request,\n params\n });\n },\n getSdkProperties() {\n const { sdkType, sdkVersion } = OptionsController.state;\n return {\n st: sdkType || 'unknown',\n sv: sdkVersion || 'unknown'\n };\n },\n async isNetworkSupported(networkId) {\n if (!networkId) {\n return false;\n }\n try {\n if (!state.supportedChains.http.length) {\n await BlockchainApiController.getSupportedNetworks();\n }\n }\n catch (e) {\n return false;\n }\n return state.supportedChains.http.includes(networkId);\n },\n async getSupportedNetworks() {\n try {\n const supportedChains = await BlockchainApiController.get({\n path: 'v1/supported-chains'\n });\n state.supportedChains = supportedChains;\n return supportedChains;\n }\n catch {\n return state.supportedChains;\n }\n },\n async fetchIdentity({ address, caipNetworkId }) {\n const isSupported = await BlockchainApiController.isNetworkSupported(caipNetworkId);\n if (!isSupported) {\n return { avatar: '', name: '' };\n }\n const identityCache = StorageUtil.getIdentityFromCacheForAddress(address);\n if (identityCache) {\n return identityCache;\n }\n const result = await BlockchainApiController.get({\n path: `/v1/identity/${address}`,\n params: {\n sender: ChainController.state.activeCaipAddress\n ? CoreHelperUtil.getPlainAddress(ChainController.state.activeCaipAddress)\n : undefined\n }\n });\n StorageUtil.updateIdentityCache({\n address,\n identity: result,\n timestamp: Date.now()\n });\n return result;\n },\n async fetchTransactions({ account, cursor, onramp, signal, cache, chainId }) {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n return { data: [], next: undefined };\n }\n return BlockchainApiController.get({\n path: `/v1/account/${account}/history`,\n params: {\n cursor,\n onramp,\n chainId\n },\n signal,\n cache\n });\n },\n async fetchSwapQuote({ amount, userAddress, from, to, gasPrice }) {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n return { quotes: [] };\n }\n return BlockchainApiController.get({\n path: `/v1/convert/quotes`,\n headers: {\n 'Content-Type': 'application/json'\n },\n params: {\n amount,\n userAddress,\n from,\n to,\n gasPrice\n }\n });\n },\n async fetchSwapTokens({ chainId }) {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n return { tokens: [] };\n }\n return BlockchainApiController.get({\n path: `/v1/convert/tokens`,\n params: { chainId }\n });\n },\n async fetchTokenPrice({ addresses }) {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n return { fungibles: [] };\n }\n return state.api.post({\n path: '/v1/fungible/price',\n body: {\n currency: 'usd',\n addresses,\n projectId: OptionsController.state.projectId\n },\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n },\n async fetchSwapAllowance({ tokenAddress, userAddress }) {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n return { allowance: '0' };\n }\n return BlockchainApiController.get({\n path: `/v1/convert/allowance`,\n params: {\n tokenAddress,\n userAddress\n },\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n },\n async fetchGasPrice({ chainId }) {\n const { st, sv } = BlockchainApiController.getSdkProperties();\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n throw new Error('Network not supported for Gas Price');\n }\n return BlockchainApiController.get({\n path: `/v1/convert/gas-price`,\n headers: {\n 'Content-Type': 'application/json'\n },\n params: {\n chainId,\n st,\n sv\n }\n });\n },\n async generateSwapCalldata({ amount, from, to, userAddress, disableEstimate }) {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n throw new Error('Network not supported for Swaps');\n }\n return state.api.post({\n path: '/v1/convert/build-transaction',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: {\n amount,\n eip155: {\n slippage: ConstantsUtil.CONVERT_SLIPPAGE_TOLERANCE\n },\n projectId: OptionsController.state.projectId,\n from,\n to,\n userAddress,\n disableEstimate\n }\n });\n },\n async generateApproveCalldata({ from, to, userAddress }) {\n const { st, sv } = BlockchainApiController.getSdkProperties();\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n throw new Error('Network not supported for Swaps');\n }\n return BlockchainApiController.get({\n path: `/v1/convert/build-approve`,\n headers: {\n 'Content-Type': 'application/json'\n },\n params: {\n userAddress,\n from,\n to,\n st,\n sv\n }\n });\n },\n async getBalance(address, chainId, forceUpdate) {\n const { st, sv } = BlockchainApiController.getSdkProperties();\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n SnackController.showError('Token Balance Unavailable');\n return { balances: [] };\n }\n const caipAddress = `${chainId}:${address}`;\n const cachedBalance = StorageUtil.getBalanceCacheForCaipAddress(caipAddress);\n if (cachedBalance) {\n return cachedBalance;\n }\n const balance = await BlockchainApiController.get({\n path: `/v1/account/${address}/balance`,\n params: {\n currency: 'usd',\n chainId,\n forceUpdate,\n st,\n sv\n }\n });\n StorageUtil.updateBalanceCache({\n caipAddress,\n balance,\n timestamp: Date.now()\n });\n return balance;\n },\n async lookupEnsName(name) {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n return { addresses: {}, attributes: [] };\n }\n return BlockchainApiController.get({\n path: `/v1/profile/account/${name}`,\n params: { apiVersion: '2' }\n });\n },\n async reverseLookupEnsName({ address }) {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n return [];\n }\n return BlockchainApiController.get({\n path: `/v1/profile/reverse/${address}`,\n params: {\n sender: AccountController.state.address,\n apiVersion: '2'\n }\n });\n },\n async getEnsNameSuggestions(name) {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n return { suggestions: [] };\n }\n return BlockchainApiController.get({\n path: `/v1/profile/suggestions/${name}`,\n params: { zone: 'reown.id' }\n });\n },\n async registerEnsName({ coinType, address, message, signature }) {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n return { success: false };\n }\n return state.api.post({\n path: `/v1/profile/account`,\n body: { coin_type: coinType, address, message, signature },\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n },\n async generateOnRampURL({ destinationWallets, partnerUserId, defaultNetwork, purchaseAmount, paymentAmount }) {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n return '';\n }\n const response = await state.api.post({\n path: `/v1/generators/onrampurl`,\n params: {\n projectId: OptionsController.state.projectId\n },\n body: {\n destinationWallets,\n defaultNetwork,\n partnerUserId,\n defaultExperience: 'buy',\n presetCryptoAmount: purchaseAmount,\n presetFiatAmount: paymentAmount\n }\n });\n return response.url;\n },\n async getOnrampOptions() {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n return { paymentCurrencies: [], purchaseCurrencies: [] };\n }\n try {\n const response = await BlockchainApiController.get({\n path: `/v1/onramp/options`\n });\n return response;\n }\n catch (e) {\n return DEFAULT_OPTIONS;\n }\n },\n async getOnrampQuote({ purchaseCurrency, paymentCurrency, amount, network }) {\n try {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n return null;\n }\n const response = await state.api.post({\n path: `/v1/onramp/quote`,\n params: {\n projectId: OptionsController.state.projectId\n },\n body: {\n purchaseCurrency,\n paymentCurrency,\n amount,\n network\n }\n });\n return response;\n }\n catch (e) {\n // Mocking response as 1:1 until endpoint is ready\n return {\n coinbaseFee: { amount, currency: paymentCurrency.id },\n networkFee: { amount, currency: paymentCurrency.id },\n paymentSubtotal: { amount, currency: paymentCurrency.id },\n paymentTotal: { amount, currency: paymentCurrency.id },\n purchaseAmount: { amount, currency: paymentCurrency.id },\n quoteId: 'mocked-quote-id'\n };\n }\n },\n async getSmartSessions(caipAddress) {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n return [];\n }\n return BlockchainApiController.get({\n path: `/v1/sessions/${caipAddress}`\n });\n },\n async revokeSmartSession(address, pci, signature) {\n const isSupported = await BlockchainApiController.isNetworkSupported(ChainController.state.activeCaipNetwork?.caipNetworkId);\n if (!isSupported) {\n return { success: false };\n }\n return state.api.post({\n path: `/v1/sessions/${address}/revoke`,\n params: {\n projectId: OptionsController.state.projectId\n },\n body: {\n pci,\n signature\n }\n });\n },\n setClientId(clientId) {\n state.clientId = clientId;\n state.api = new FetchUtil({ baseUrl, clientId });\n }\n};\n//# sourceMappingURL=BlockchainApiController.js.map","import { proxy, ref } from 'valtio/vanilla';\nimport { ConstantsUtil } from '../utils/ConstantsUtil.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { BlockchainApiController } from './BlockchainApiController.js';\nimport { ChainController } from './ChainController.js';\nimport { SnackController } from './SnackController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n currentTab: 0,\n tokenBalance: [],\n smartAccountDeployed: false,\n addressLabels: new Map(),\n allAccounts: []\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n replaceState(newState) {\n if (!newState) {\n return;\n }\n Object.assign(state, ref(newState));\n },\n subscribe(callback) {\n return ChainController.subscribeChainProp('accountState', accountState => {\n if (accountState) {\n return callback(accountState);\n }\n return undefined;\n });\n },\n subscribeKey(property, callback, chain) {\n let prev = undefined;\n return ChainController.subscribeChainProp('accountState', accountState => {\n if (accountState) {\n const nextValue = accountState[property];\n if (prev !== nextValue) {\n prev = nextValue;\n callback(nextValue);\n }\n }\n }, chain);\n },\n setStatus(status, chain) {\n ChainController.setAccountProp('status', status, chain);\n },\n getCaipAddress(chain) {\n return ChainController.getAccountProp('caipAddress', chain);\n },\n setCaipAddress(caipAddress, chain) {\n const newAddress = caipAddress ? CoreHelperUtil.getPlainAddress(caipAddress) : undefined;\n if (chain === ChainController.state.activeChain) {\n ChainController.state.activeCaipAddress = caipAddress;\n }\n ChainController.setAccountProp('caipAddress', caipAddress, chain);\n ChainController.setAccountProp('address', newAddress, chain);\n },\n setBalance(balance, balanceSymbol, chain) {\n ChainController.setAccountProp('balance', balance, chain);\n ChainController.setAccountProp('balanceSymbol', balanceSymbol, chain);\n },\n setProfileName(profileName, chain) {\n ChainController.setAccountProp('profileName', profileName, chain);\n },\n setProfileImage(profileImage, chain) {\n ChainController.setAccountProp('profileImage', profileImage, chain);\n },\n setUser(user, chain) {\n ChainController.setAccountProp('user', user, chain);\n },\n setAddressExplorerUrl(explorerUrl, chain) {\n ChainController.setAccountProp('addressExplorerUrl', explorerUrl, chain);\n },\n setSmartAccountDeployed(isDeployed, chain) {\n ChainController.setAccountProp('smartAccountDeployed', isDeployed, chain);\n },\n setCurrentTab(currentTab) {\n ChainController.setAccountProp('currentTab', currentTab, ChainController.state.activeChain);\n },\n setTokenBalance(tokenBalance, chain) {\n if (tokenBalance) {\n ChainController.setAccountProp('tokenBalance', tokenBalance, chain);\n }\n },\n setShouldUpdateToAddress(address, chain) {\n ChainController.setAccountProp('shouldUpdateToAddress', address, chain);\n },\n setAllAccounts(accounts, namespace) {\n ChainController.setAccountProp('allAccounts', accounts, namespace);\n },\n addAddressLabel(address, label, chain) {\n const map = ChainController.getAccountProp('addressLabels', chain) || new Map();\n map.set(address, label);\n ChainController.setAccountProp('addressLabels', map, chain);\n },\n removeAddressLabel(address, chain) {\n const map = ChainController.getAccountProp('addressLabels', chain) || new Map();\n map.delete(address);\n ChainController.setAccountProp('addressLabels', map, chain);\n },\n setConnectedWalletInfo(connectedWalletInfo, chain) {\n ChainController.setAccountProp('connectedWalletInfo', connectedWalletInfo, chain, false);\n },\n setPreferredAccountType(preferredAccountType, chain) {\n ChainController.setAccountProp('preferredAccountTypes', {\n ...state.preferredAccountTypes,\n [chain]: preferredAccountType\n }, chain);\n },\n setPreferredAccountTypes(preferredAccountTypes) {\n state.preferredAccountTypes = preferredAccountTypes;\n },\n setSocialProvider(socialProvider, chain) {\n if (socialProvider) {\n ChainController.setAccountProp('socialProvider', socialProvider, chain);\n }\n },\n setSocialWindow(socialWindow, chain) {\n ChainController.setAccountProp('socialWindow', socialWindow ? ref(socialWindow) : undefined, chain);\n },\n setFarcasterUrl(farcasterUrl, chain) {\n ChainController.setAccountProp('farcasterUrl', farcasterUrl, chain);\n },\n async fetchTokenBalance(onError) {\n state.balanceLoading = true;\n const chainId = ChainController.state.activeCaipNetwork?.caipNetworkId;\n const chain = ChainController.state.activeCaipNetwork?.chainNamespace;\n const caipAddress = ChainController.state.activeCaipAddress;\n const address = caipAddress ? CoreHelperUtil.getPlainAddress(caipAddress) : undefined;\n if (state.lastRetry &&\n !CoreHelperUtil.isAllowedRetry(state.lastRetry, 30 * ConstantsUtil.ONE_SEC_MS)) {\n state.balanceLoading = false;\n return [];\n }\n try {\n if (address && chainId && chain) {\n const response = await BlockchainApiController.getBalance(address, chainId);\n /*\n * The 1Inch API includes many low-quality tokens in the balance response,\n * which appear inconsistently. This filter prevents them from being displayed.\n */\n const filteredBalances = response.balances.filter(balance => balance.quantity.decimals !== '0');\n AccountController.setTokenBalance(filteredBalances, chain);\n state.lastRetry = undefined;\n state.balanceLoading = false;\n return filteredBalances;\n }\n }\n catch (error) {\n state.lastRetry = Date.now();\n onError?.(error);\n SnackController.showError('Token Balance Unavailable');\n }\n finally {\n state.balanceLoading = false;\n }\n return [];\n },\n resetAccount(chain) {\n ChainController.resetAccount(chain);\n }\n};\nexport const AccountController = withErrorBoundary(controller);\n//# sourceMappingURL=AccountController.js.map","import { ConstantsUtil } from '@reown/appkit-common';\nimport { AccountController } from '../controllers/AccountController.js';\nimport { ChainController } from '../controllers/ChainController.js';\nimport { ConnectorController } from '../controllers/ConnectorController.js';\nimport { RouterController } from '../controllers/RouterController.js';\nexport const NetworkUtil = {\n /**\n * Function to handle the network switch.\n * This function has variety of conditions to handle the network switch depending on the connectors or namespace's connection states.\n * @param args.network - The network to switch to.\n * @param args.shouldConfirmSwitch - Whether to confirm the switch. If true, the user will be asked to confirm the switch if necessary.\n * @returns void\n */\n onSwitchNetwork({ network, ignoreSwitchConfirmation = false }) {\n const currentNetwork = ChainController.state.activeCaipNetwork;\n const routerData = RouterController.state.data;\n const isSameNetwork = network.id === currentNetwork?.id;\n if (isSameNetwork) {\n return;\n }\n const isCurrentNamespaceConnected = AccountController.getCaipAddress(ChainController.state.activeChain);\n const isDifferentNamespace = network.chainNamespace !== ChainController.state.activeChain;\n const isNextNamespaceConnected = AccountController.getCaipAddress(network.chainNamespace);\n const connectorId = ConnectorController.getConnectorId(ChainController.state.activeChain);\n /**\n * If the network is supported by the auth connector, we don't need to show switch active chain view.\n * But there are some cases like switching from Ethereum to Bitcoin where Bitcoin is not supported by the auth connector and users should connect with another connector.\n */\n const isConnectedWithAuth = connectorId === ConstantsUtil.CONNECTOR_ID.AUTH;\n const isSupportedForAuthConnector = ConstantsUtil.AUTH_CONNECTOR_SUPPORTED_CHAINS.find(c => c === network.chainNamespace);\n /**\n * 1. If the ignoreSwitchConfirmation is set to true, we should switch to the network,\n * 2. If user connected with auth connector and the next network is supported by the auth connector,\n * we should switch to the network without confirmation screen.\n */\n if (ignoreSwitchConfirmation || (isConnectedWithAuth && isSupportedForAuthConnector)) {\n RouterController.push('SwitchNetwork', { ...routerData, network });\n }\n else if (\n /**\n * If user switching to a different namespace and next namespace is not connected, we need to show switch active chain view for confirmation first.\n */\n isCurrentNamespaceConnected &&\n isDifferentNamespace &&\n !isNextNamespaceConnected) {\n RouterController.push('SwitchActiveChain', {\n switchToChain: network.chainNamespace,\n navigateTo: 'Connect',\n navigateWithReplace: true,\n network\n });\n }\n else {\n RouterController.push('SwitchNetwork', { ...routerData, network });\n }\n }\n};\n//# sourceMappingURL=NetworkUtil.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport {} from '@reown/appkit-common';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { NetworkUtil } from '../utils/NetworkUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { ApiController } from './ApiController.js';\nimport { ChainController } from './ChainController.js';\nimport { ConnectionController } from './ConnectionController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { EventsController } from './EventsController.js';\nimport { OptionsController } from './OptionsController.js';\nimport { PublicStateController } from './PublicStateController.js';\nimport { RouterController } from './RouterController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n loading: false,\n loadingNamespaceMap: new Map(),\n open: false,\n shake: false,\n namespace: undefined\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n async open(options) {\n const isConnected = AccountController.state.status === 'connected';\n const namespace = options?.namespace;\n const currentNamespace = ChainController.state.activeChain;\n const isSwitchingNamespace = namespace && namespace !== currentNamespace;\n const caipAddress = ChainController.getAccountData(options?.namespace)?.caipAddress;\n if (ConnectionController.state.wcBasic) {\n // No need to add an await here if we are use basic\n ApiController.prefetch({ fetchNetworkImages: false, fetchConnectorImages: false });\n }\n else {\n await ApiController.prefetch({\n fetchConnectorImages: !isConnected,\n fetchFeaturedWallets: !isConnected,\n fetchRecommendedWallets: !isConnected\n });\n }\n ConnectorController.setFilterByNamespace(options?.namespace);\n ModalController.setLoading(true, namespace);\n if (namespace && isSwitchingNamespace) {\n const namespaceNetwork = ChainController.getNetworkData(namespace)?.caipNetwork ||\n ChainController.getRequestedCaipNetworks(namespace)[0];\n if (namespaceNetwork) {\n NetworkUtil.onSwitchNetwork({ network: namespaceNetwork, ignoreSwitchConfirmation: true });\n }\n }\n else {\n const hasNoAdapters = ChainController.state.noAdapters;\n if (OptionsController.state.manualWCControl || (hasNoAdapters && !caipAddress)) {\n if (CoreHelperUtil.isMobile()) {\n RouterController.reset('AllWallets');\n }\n else {\n RouterController.reset('ConnectingWalletConnectBasic');\n }\n }\n else if (options?.view) {\n RouterController.reset(options.view, options.data);\n }\n else if (caipAddress) {\n RouterController.reset('Account');\n }\n else {\n RouterController.reset('Connect');\n }\n }\n state.open = true;\n PublicStateController.set({ open: true });\n EventsController.sendEvent({\n type: 'track',\n event: 'MODAL_OPEN',\n properties: { connected: Boolean(caipAddress) }\n });\n },\n close() {\n const isEmbeddedEnabled = OptionsController.state.enableEmbedded;\n const isConnected = Boolean(ChainController.state.activeCaipAddress);\n // Only send the event if the modal is open and is about to be closed\n if (state.open) {\n EventsController.sendEvent({\n type: 'track',\n event: 'MODAL_CLOSE',\n properties: { connected: isConnected }\n });\n }\n state.open = false;\n RouterController.reset('Connect');\n ModalController.clearLoading();\n if (isEmbeddedEnabled) {\n if (isConnected) {\n RouterController.replace('Account');\n }\n else {\n RouterController.push('Connect');\n }\n }\n else {\n PublicStateController.set({ open: false });\n }\n ConnectionController.resetUri();\n },\n setLoading(loading, namespace) {\n if (namespace) {\n state.loadingNamespaceMap.set(namespace, loading);\n }\n state.loading = loading;\n PublicStateController.set({ loading });\n },\n clearLoading() {\n state.loadingNamespaceMap.clear();\n state.loading = false;\n },\n shake() {\n if (state.shake) {\n return;\n }\n state.shake = true;\n setTimeout(() => {\n state.shake = false;\n }, 500);\n }\n};\n// Export the controller wrapped with our error boundary\nexport const ModalController = withErrorBoundary(controller);\n//# sourceMappingURL=ModalController.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { ConstantsUtil } from '@reown/appkit-common';\nimport { MELD_PUBLIC_KEY, ONRAMP_PROVIDERS } from '../utils/ConstantsUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { ApiController } from './ApiController.js';\nimport { BlockchainApiController } from './BlockchainApiController.js';\nimport { ChainController } from './ChainController.js';\nimport { OptionsController } from './OptionsController.js';\nexport const USDC_CURRENCY_DEFAULT = {\n id: '2b92315d-eab7-5bef-84fa-089a131333f5',\n name: 'USD Coin',\n symbol: 'USDC',\n networks: [\n {\n name: 'ethereum-mainnet',\n display_name: 'Ethereum',\n chain_id: '1',\n contract_address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'\n },\n {\n name: 'polygon-mainnet',\n display_name: 'Polygon',\n chain_id: '137',\n contract_address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174'\n }\n ]\n};\nexport const USD_CURRENCY_DEFAULT = {\n id: 'USD',\n payment_method_limits: [\n {\n id: 'card',\n min: '10.00',\n max: '7500.00'\n },\n {\n id: 'ach_bank_account',\n min: '10.00',\n max: '25000.00'\n }\n ]\n};\nconst defaultState = {\n providers: ONRAMP_PROVIDERS,\n selectedProvider: null,\n error: null,\n purchaseCurrency: USDC_CURRENCY_DEFAULT,\n paymentCurrency: USD_CURRENCY_DEFAULT,\n purchaseCurrencies: [USDC_CURRENCY_DEFAULT],\n paymentCurrencies: [],\n quotesLoading: false\n};\n// -- State --------------------------------------------- //\nconst state = proxy(defaultState);\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n setSelectedProvider(provider) {\n if (provider && provider.name === 'meld') {\n const currency = ChainController.state.activeChain === ConstantsUtil.CHAIN.SOLANA ? 'SOL' : 'USDC';\n const address = AccountController.state.address ?? '';\n const url = new URL(provider.url);\n url.searchParams.append('publicKey', MELD_PUBLIC_KEY);\n url.searchParams.append('destinationCurrencyCode', currency);\n url.searchParams.append('walletAddress', address);\n url.searchParams.append('externalCustomerId', OptionsController.state.projectId);\n state.selectedProvider = { ...provider, url: url.toString() };\n }\n else {\n state.selectedProvider = provider;\n }\n },\n setOnrampProviders(providers) {\n if (Array.isArray(providers) && providers.every(item => typeof item === 'string')) {\n const validOnramp = providers;\n const newProviders = ONRAMP_PROVIDERS.filter(provider => validOnramp.includes(provider.name));\n state.providers = newProviders;\n }\n else {\n state.providers = [];\n }\n },\n setPurchaseCurrency(currency) {\n state.purchaseCurrency = currency;\n },\n setPaymentCurrency(currency) {\n state.paymentCurrency = currency;\n },\n setPurchaseAmount(amount) {\n OnRampController.state.purchaseAmount = amount;\n },\n setPaymentAmount(amount) {\n OnRampController.state.paymentAmount = amount;\n },\n async getAvailableCurrencies() {\n const options = await BlockchainApiController.getOnrampOptions();\n state.purchaseCurrencies = options.purchaseCurrencies;\n state.paymentCurrencies = options.paymentCurrencies;\n state.paymentCurrency = options.paymentCurrencies[0] || USD_CURRENCY_DEFAULT;\n state.purchaseCurrency = options.purchaseCurrencies[0] || USDC_CURRENCY_DEFAULT;\n await ApiController.fetchCurrencyImages(options.paymentCurrencies.map(currency => currency.id));\n await ApiController.fetchTokenImages(options.purchaseCurrencies.map(currency => currency.symbol));\n },\n async getQuote() {\n state.quotesLoading = true;\n try {\n const quote = await BlockchainApiController.getOnrampQuote({\n purchaseCurrency: state.purchaseCurrency,\n paymentCurrency: state.paymentCurrency,\n amount: state.paymentAmount?.toString() || '0',\n network: state.purchaseCurrency?.symbol\n });\n state.quotesLoading = false;\n state.purchaseAmount = Number(quote?.purchaseAmount.amount);\n return quote;\n }\n catch (error) {\n state.error = error.message;\n state.quotesLoading = false;\n return null;\n }\n finally {\n state.quotesLoading = false;\n }\n },\n resetState() {\n state.selectedProvider = null;\n state.error = null;\n state.purchaseCurrency = USDC_CURRENCY_DEFAULT;\n state.paymentCurrency = USD_CURRENCY_DEFAULT;\n state.purchaseCurrencies = [USDC_CURRENCY_DEFAULT];\n state.paymentCurrencies = [];\n state.paymentAmount = undefined;\n state.purchaseAmount = undefined;\n state.quotesLoading = false;\n }\n};\n// Export the controller wrapped with our error boundary\nexport const OnRampController = withErrorBoundary(controller);\n//# sourceMappingURL=OnRampController.js.map","const SLIP44_MSB = 0x80000000;\nexport const EnsUtil = {\n convertEVMChainIdToCoinType(chainId) {\n if (chainId >= SLIP44_MSB) {\n throw new Error('Invalid chainId');\n }\n return (SLIP44_MSB | chainId) >>> 0;\n }\n};\n//# sourceMappingURL=EnsUtil.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { EnsUtil } from '../utils/EnsUtil.js';\nimport { StorageUtil } from '../utils/StorageUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AccountController } from './AccountController.js';\nimport { BlockchainApiController } from './BlockchainApiController.js';\nimport { ChainController } from './ChainController.js';\nimport { ConnectionController } from './ConnectionController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { RouterController } from './RouterController.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n suggestions: [],\n loading: false\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n async resolveName(name) {\n try {\n return await BlockchainApiController.lookupEnsName(name);\n }\n catch (e) {\n const error = e;\n throw new Error(error?.reasons?.[0]?.description || 'Error resolving name');\n }\n },\n async isNameRegistered(name) {\n try {\n await BlockchainApiController.lookupEnsName(name);\n return true;\n }\n catch {\n return false;\n }\n },\n async getSuggestions(value) {\n try {\n state.loading = true;\n state.suggestions = [];\n const response = await BlockchainApiController.getEnsNameSuggestions(value);\n state.suggestions =\n response.suggestions.map(suggestion => ({\n ...suggestion,\n name: suggestion.name\n })) || [];\n return state.suggestions;\n }\n catch (e) {\n const errorMessage = EnsController.parseEnsApiError(e, 'Error fetching name suggestions');\n throw new Error(errorMessage);\n }\n finally {\n state.loading = false;\n }\n },\n async getNamesForAddress(address) {\n try {\n const network = ChainController.state.activeCaipNetwork;\n if (!network) {\n return [];\n }\n const cachedEns = StorageUtil.getEnsFromCacheForAddress(address);\n if (cachedEns) {\n return cachedEns;\n }\n const response = await BlockchainApiController.reverseLookupEnsName({ address });\n StorageUtil.updateEnsCache({\n address,\n ens: response,\n timestamp: Date.now()\n });\n return response;\n }\n catch (e) {\n const errorMessage = EnsController.parseEnsApiError(e, 'Error fetching names for address');\n throw new Error(errorMessage);\n }\n },\n async registerName(name) {\n const network = ChainController.state.activeCaipNetwork;\n if (!network) {\n throw new Error('Network not found');\n }\n const address = AccountController.state.address;\n const emailConnector = ConnectorController.getAuthConnector();\n if (!address || !emailConnector) {\n throw new Error('Address or auth connector not found');\n }\n state.loading = true;\n try {\n const message = JSON.stringify({\n name,\n attributes: {},\n // Unix timestamp\n timestamp: Math.floor(Date.now() / 1000)\n });\n RouterController.pushTransactionStack({\n onCancel() {\n RouterController.replace('RegisterAccountName');\n }\n });\n const signature = await ConnectionController.signMessage(message);\n state.loading = false;\n const networkId = network.id;\n if (!networkId) {\n throw new Error('Network not found');\n }\n const coinType = EnsUtil.convertEVMChainIdToCoinType(Number(networkId));\n await BlockchainApiController.registerEnsName({\n coinType,\n address: address,\n signature: signature,\n message\n });\n AccountController.setProfileName(name, network.chainNamespace);\n RouterController.replace('RegisterAccountNameSuccess');\n }\n catch (e) {\n const errorMessage = EnsController.parseEnsApiError(e, `Error registering name ${name}`);\n RouterController.replace('RegisterAccountName');\n throw new Error(errorMessage);\n }\n finally {\n state.loading = false;\n }\n },\n validateName(name) {\n return /^[a-zA-Z0-9-]{4,}$/u.test(name);\n },\n parseEnsApiError(error, defaultError) {\n const ensError = error;\n return ensError?.reasons?.[0]?.description || defaultError;\n }\n};\n// Export the controller wrapped with our error boundary\nexport const EnsController = withErrorBoundary(controller);\n//# sourceMappingURL=EnsController.js.map","import UniversalProvider from '@walletconnect/universal-provider';\nimport { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common';\nimport { W3mFrameRpcConstants } from '@reown/appkit-wallet/utils';\nimport { AccountController } from '../controllers/AccountController.js';\nimport { ChainController } from '../controllers/ChainController.js';\nimport { ConnectionController } from '../controllers/ConnectionController.js';\nimport { ConnectorController } from '../controllers/ConnectorController.js';\nimport { EventsController } from '../controllers/EventsController.js';\nimport { ModalController } from '../controllers/ModalController.js';\nimport { OptionsController } from '../controllers/OptionsController.js';\nimport { RouterController } from '../controllers/RouterController.js';\nimport { SnackController } from '../controllers/SnackController.js';\nimport { CoreHelperUtil } from './CoreHelperUtil.js';\n/**\n * SIWXUtil holds the methods to interact with the SIWX plugin and must be called internally on AppKit.\n */\nexport const SIWXUtil = {\n getSIWX() {\n return OptionsController.state.siwx;\n },\n async initializeIfEnabled() {\n const siwx = OptionsController.state.siwx;\n const caipAddress = ChainController.getActiveCaipAddress();\n if (!(siwx && caipAddress)) {\n return;\n }\n const [namespace, chainId, address] = caipAddress.split(':');\n if (!ChainController.checkIfSupportedNetwork(namespace)) {\n return;\n }\n try {\n const sessions = await siwx.getSessions(`${namespace}:${chainId}`, address);\n if (sessions.length) {\n return;\n }\n await ModalController.open({\n view: 'SIWXSignMessage'\n });\n }\n catch (error) {\n // eslint-disable-next-line no-console\n console.error('SIWXUtil:initializeIfEnabled', error);\n EventsController.sendEvent({\n type: 'track',\n event: 'SIWX_AUTH_ERROR',\n properties: this.getSIWXEventProperties()\n });\n // eslint-disable-next-line no-console\n await ConnectionController._getClient()?.disconnect().catch(console.error);\n RouterController.reset('Connect');\n SnackController.showError('A problem occurred while trying initialize authentication');\n }\n },\n async requestSignMessage() {\n const siwx = OptionsController.state.siwx;\n const address = CoreHelperUtil.getPlainAddress(ChainController.getActiveCaipAddress());\n const network = ChainController.getActiveCaipNetwork();\n const client = ConnectionController._getClient();\n if (!siwx) {\n throw new Error('SIWX is not enabled');\n }\n if (!address) {\n throw new Error('No ActiveCaipAddress found');\n }\n if (!network) {\n throw new Error('No ActiveCaipNetwork or client found');\n }\n if (!client) {\n throw new Error('No ConnectionController client found');\n }\n try {\n const siwxMessage = await siwx.createMessage({\n chainId: network.caipNetworkId,\n accountAddress: address\n });\n const message = siwxMessage.toString();\n const connectorId = ConnectorController.getConnectorId(network.chainNamespace);\n if (connectorId === CommonConstantsUtil.CONNECTOR_ID.AUTH) {\n RouterController.pushTransactionStack({});\n }\n const signature = await client.signMessage(message);\n await siwx.addSession({\n data: siwxMessage,\n message,\n signature: signature\n });\n ModalController.close();\n EventsController.sendEvent({\n type: 'track',\n event: 'SIWX_AUTH_SUCCESS',\n properties: this.getSIWXEventProperties()\n });\n }\n catch (error) {\n const properties = this.getSIWXEventProperties();\n if (!ModalController.state.open || RouterController.state.view === 'ApproveTransaction') {\n await ModalController.open({\n view: 'SIWXSignMessage'\n });\n }\n if (properties.isSmartAccount) {\n SnackController.showError('This application might not support Smart Accounts');\n }\n else {\n SnackController.showError('Signature declined');\n }\n EventsController.sendEvent({\n type: 'track',\n event: 'SIWX_AUTH_ERROR',\n properties\n });\n // eslint-disable-next-line no-console\n console.error('SWIXUtil:requestSignMessage', error);\n }\n },\n async cancelSignMessage() {\n try {\n const siwx = this.getSIWX();\n const isRequired = siwx?.getRequired?.();\n if (isRequired) {\n await ConnectionController.disconnect();\n }\n else {\n ModalController.close();\n }\n RouterController.reset('Connect');\n EventsController.sendEvent({\n event: 'CLICK_CANCEL_SIWX',\n type: 'track',\n properties: this.getSIWXEventProperties()\n });\n }\n catch (error) {\n // eslint-disable-next-line no-console\n console.error('SIWXUtil:cancelSignMessage', error);\n }\n },\n async getSessions() {\n const siwx = OptionsController.state.siwx;\n const address = CoreHelperUtil.getPlainAddress(ChainController.getActiveCaipAddress());\n const network = ChainController.getActiveCaipNetwork();\n if (!(siwx && address && network)) {\n return [];\n }\n return siwx.getSessions(network.caipNetworkId, address);\n },\n async isSIWXCloseDisabled() {\n const siwx = this.getSIWX();\n if (siwx) {\n const isApproveSignScreen = RouterController.state.view === 'ApproveTransaction';\n const isSiwxSignMessage = RouterController.state.view === 'SIWXSignMessage';\n if (isApproveSignScreen || isSiwxSignMessage) {\n return siwx.getRequired?.() && (await this.getSessions()).length === 0;\n }\n }\n return false;\n },\n async universalProviderAuthenticate({ universalProvider, chains, methods }) {\n const siwx = SIWXUtil.getSIWX();\n const namespaces = new Set(chains.map(chain => chain.split(':')[0]));\n if (!siwx || namespaces.size !== 1 || !namespaces.has('eip155')) {\n return false;\n }\n // Ignores chainId and account address to get other message data\n const siwxMessage = await siwx.createMessage({\n chainId: ChainController.getActiveCaipNetwork()?.caipNetworkId || '',\n accountAddress: ''\n });\n const result = await universalProvider.authenticate({\n nonce: siwxMessage.nonce,\n domain: siwxMessage.domain,\n uri: siwxMessage.uri,\n exp: siwxMessage.expirationTime,\n iat: siwxMessage.issuedAt,\n nbf: siwxMessage.notBefore,\n requestId: siwxMessage.requestId,\n version: siwxMessage.version,\n resources: siwxMessage.resources,\n statement: siwxMessage.statement,\n chainId: siwxMessage.chainId,\n methods,\n // The first chainId is what is used for universal provider to build the message\n chains: [siwxMessage.chainId, ...chains.filter(chain => chain !== siwxMessage.chainId)]\n });\n SnackController.showLoading('Authenticating...', { autoClose: false });\n AccountController.setConnectedWalletInfo({\n ...result.session.peer.metadata,\n name: result.session.peer.metadata.name,\n icon: result.session.peer.metadata.icons?.[0],\n type: 'WALLET_CONNECT'\n }, Array.from(namespaces)[0]);\n if (result?.auths?.length) {\n const sessions = result.auths.map(cacao => {\n const message = universalProvider.client.formatAuthMessage({\n request: cacao.p,\n iss: cacao.p.iss\n });\n return {\n data: {\n ...cacao.p,\n accountAddress: cacao.p.iss.split(':').slice(-1).join(''),\n chainId: cacao.p.iss.split(':').slice(2, 4).join(':'),\n uri: cacao.p.aud,\n version: cacao.p.version || siwxMessage.version,\n expirationTime: cacao.p.exp,\n issuedAt: cacao.p.iat,\n notBefore: cacao.p.nbf\n },\n message,\n signature: cacao.s.s,\n cacao\n };\n });\n try {\n await siwx.setSessions(sessions);\n EventsController.sendEvent({\n type: 'track',\n event: 'SIWX_AUTH_SUCCESS',\n properties: SIWXUtil.getSIWXEventProperties()\n });\n }\n catch (error) {\n // eslint-disable-next-line no-console\n console.error('SIWX:universalProviderAuth - failed to set sessions', error);\n EventsController.sendEvent({\n type: 'track',\n event: 'SIWX_AUTH_ERROR',\n properties: SIWXUtil.getSIWXEventProperties()\n });\n // eslint-disable-next-line no-console\n await universalProvider.disconnect().catch(console.error);\n throw error;\n }\n finally {\n SnackController.hide();\n }\n }\n return true;\n },\n getSIWXEventProperties() {\n const activeChainNamespace = ChainController.state.activeChain;\n return {\n network: ChainController.state.activeCaipNetwork?.caipNetworkId || '',\n isSmartAccount: AccountController.state.preferredAccountTypes?.[activeChainNamespace] ===\n W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT\n };\n },\n async clearSessions() {\n const siwx = this.getSIWX();\n if (siwx) {\n await siwx.setSessions([]);\n }\n }\n};\n//# sourceMappingURL=SIWXUtil.js.map","import{IEvents as o}from\"@walletconnect/events\";import n,{EventEmitter as l}from\"events\";var a=Object.defineProperty,u=(e,s,r)=>s in e?a(e,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[s]=r,c=(e,s,r)=>u(e,typeof s!=\"symbol\"?s+\"\":s,r);class h extends o{constructor(s){super(),this.opts=s,c(this,\"protocol\",\"wc\"),c(this,\"version\",2)}}class g{constructor(s,r,t){this.core=s,this.logger=r}}var p=Object.defineProperty,b=(e,s,r)=>s in e?p(e,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[s]=r,v=(e,s,r)=>b(e,typeof s!=\"symbol\"?s+\"\":s,r);class I extends o{constructor(s,r){super(),this.core=s,this.logger=r,v(this,\"records\",new Map)}}class y{constructor(s,r){this.logger=s,this.core=r}}class m extends o{constructor(s,r){super(),this.relayer=s,this.logger=r}}class d extends o{constructor(s){super()}}class f{constructor(s,r,t,q){this.core=s,this.logger=r,this.name=t}}var E=Object.defineProperty,x=(e,s,r)=>s in e?E(e,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[s]=r,w=(e,s,r)=>x(e,typeof s!=\"symbol\"?s+\"\":s,r);class C{constructor(){w(this,\"map\",new Map)}}class P extends o{constructor(s,r){super(),this.relayer=s,this.logger=r}}class j{constructor(s,r){this.core=s,this.logger=r}}class S extends o{constructor(s,r){super(),this.core=s,this.logger=r}}class ${constructor(s,r){this.logger=s,this.core=r}}class M{constructor(s,r,t){this.core=s,this.logger=r,this.store=t}}class O{constructor(s,r){this.projectId=s,this.logger=r}}class R{constructor(s,r,t){this.core=s,this.logger=r,this.telemetryEnabled=t}}var T=Object.defineProperty,k=(e,s,r)=>s in e?T(e,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[s]=r,i=(e,s,r)=>k(e,typeof s!=\"symbol\"?s+\"\":s,r);class H extends n{constructor(){super()}}class J{constructor(s){this.opts=s,i(this,\"protocol\",\"wc\"),i(this,\"version\",2)}}class K extends l{constructor(){super()}}class V{constructor(s){this.client=s}}export{h as ICore,g as ICrypto,O as IEchoClient,V as IEngine,K as IEngineEvents,R as IEventClient,S as IExpirer,I as IJsonRpcHistory,j as IKeyChain,y as IMessageTracker,$ as IPairing,m as IPublisher,d as IRelayer,J as ISignClient,H as ISignClientEvents,f as IStore,P as ISubscriber,C as ISubscriberTopicMap,M as IVerify};\n//# sourceMappingURL=index.es.js.map\n","import{detect as jo}from\"detect-browser\";import{toMiliseconds as Ie,FIVE_MINUTES as xn,fromMiliseconds as Co}from\"@walletconnect/time\";import{getDocument as Yt,getNavigator as Sn,getLocation as On}from\"@walletconnect/window-getters\";import{getWindowMetadata as Po}from\"@walletconnect/window-metadata\";import{recoverAddress as ko}from\"viem\";import Vo from\"bs58\";import{decodeJWT as Mo}from\"@walletconnect/relay-auth\";import{toString as Q,fromString as rt,concat as Gt}from\"uint8arrays\";import{RELAY_JSONRPC as Do}from\"@walletconnect/relay-api\";const ae=\":\";function Ne(t){const[e,n]=t.split(ae);return{namespace:e,reference:n}}function An(t){const{namespace:e,reference:n}=t;return[e,n].join(ae)}function Ue(t){const[e,n,r]=t.split(ae);return{namespace:e,reference:n,address:r}}function Bn(t){const{namespace:e,reference:n,address:r}=t;return[e,n,r].join(ae)}function Te(t,e){const n=[];return t.forEach(r=>{const o=e(r);n.includes(o)||n.push(o)}),n}function In(t){const{address:e}=Ue(t);return e}function Nn(t){const{namespace:e,reference:n}=Ue(t);return An({namespace:e,reference:n})}function Ho(t,e){const{namespace:n,reference:r}=Ne(e);return Bn({namespace:n,reference:r,address:t})}function qo(t){return Te(t,In)}function Un(t){return Te(t,Nn)}function Ko(t,e=[]){const n=[];return Object.keys(t).forEach(r=>{if(e.length&&!e.includes(r))return;const o=t[r];n.push(...o.accounts)}),n}function Fo(t,e=[]){const n=[];return Object.keys(t).forEach(r=>{if(e.length&&!e.includes(r))return;const o=t[r];n.push(...Un(o.accounts))}),n}function zo(t,e=[]){const n=[];return Object.keys(t).forEach(r=>{if(e.length&&!e.includes(r))return;const o=t[r];n.push(...ue(r,o))}),n}function ue(t,e){return t.includes(\":\")?[t]:e.chains||[]}var Zo=Object.defineProperty,Yo=Object.defineProperties,Go=Object.getOwnPropertyDescriptors,Tn=Object.getOwnPropertySymbols,Wo=Object.prototype.hasOwnProperty,Xo=Object.prototype.propertyIsEnumerable,Rn=(t,e,n)=>e in t?Zo(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,_n=(t,e)=>{for(var n in e||(e={}))Wo.call(e,n)&&Rn(t,n,e[n]);if(Tn)for(var n of Tn(e))Xo.call(e,n)&&Rn(t,n,e[n]);return t},Jo=(t,e)=>Yo(t,Go(e));const $n=\"ReactNative\",Y={reactNative:\"react-native\",node:\"node\",browser:\"browser\",unknown:\"unknown\"},fe=\" \",Qo=\":\",Ln=\"/\",Re=2,ti=1e3,jn=\"js\";function _e(){return typeof process<\"u\"&&typeof process.versions<\"u\"&&typeof process.versions.node<\"u\"}function pt(){return!Yt()&&!!Sn()&&navigator.product===$n}function ei(){return pt()&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"&&(global==null?void 0:global.Platform.OS)===\"android\"}function ni(){return pt()&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"&&(global==null?void 0:global.Platform.OS)===\"ios\"}function Tt(){return!_e()&&!!Sn()&&!!Yt()}function xt(){return pt()?Y.reactNative:_e()?Y.node:Tt()?Y.browser:Y.unknown}function ri(){var t;try{return pt()&&typeof global<\"u\"&&typeof(global==null?void 0:global.Application)<\"u\"?(t=global.Application)==null?void 0:t.applicationId:void 0}catch{return}}function Cn(t,e){const n=new URLSearchParams(t);for(const r of Object.keys(e).sort())if(e.hasOwnProperty(r)){const o=e[r];o!==void 0&&n.set(r,o)}return n.toString()}function oi(t){var e,n;const r=Pn();try{return t!=null&&t.url&&r.url&&new URL(t.url).host!==new URL(r.url).host&&(console.warn(`The configured WalletConnect 'metadata.url':${t.url} differs from the actual page url:${r.url}. This is probably unintended and can lead to issues.`),t.url=r.url),(e=t?.icons)!=null&&e.length&&t.icons.length>0&&(t.icons=t.icons.filter(o=>o!==\"\")),Jo(_n(_n({},r),t),{url:t?.url||r.url,name:t?.name||r.name,description:t?.description||r.description,icons:(n=t?.icons)!=null&&n.length&&t.icons.length>0?t.icons:r.icons})}catch(o){return console.warn(\"Error populating app metadata\",o),t||r}}function Pn(){return Po()||{name:\"\",description:\"\",url:\"\",icons:[\"\"]}}function ii(t,e){var n;const r=xt(),o={protocol:t,version:e,env:r};return r===\"browser\"&&(o.host=((n=On())==null?void 0:n.host)||\"unknown\"),o}function kn(){if(xt()===Y.reactNative&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"){const{OS:n,Version:r}=global.Platform;return[n,r].join(\"-\")}const t=jo();if(t===null)return\"unknown\";const e=t.os?t.os.replace(\" \",\"\").toLowerCase():\"unknown\";return t.type===\"browser\"?[e,t.name,t.version].join(\"-\"):[e,t.version].join(\"-\")}function Vn(){var t;const e=xt();return e===Y.browser?[e,((t=On())==null?void 0:t.host)||\"unknown\"].join(\":\"):e}function Mn(t,e,n){const r=kn(),o=Vn();return[[t,e].join(\"-\"),[jn,n].join(\"-\"),r,o].join(\"/\")}function si({protocol:t,version:e,relayUrl:n,sdkVersion:r,auth:o,projectId:i,useOnCloseEvent:s,bundleId:c,packageName:a}){const u=n.split(\"?\"),l=Mn(t,e,r),f={auth:o,ua:l,projectId:i,useOnCloseEvent:s||void 0,packageName:a||void 0,bundleId:c||void 0},h=Cn(u[1]||\"\",f);return u[0]+\"?\"+h}function ci(t){let e=(t.match(/^[^:]+(?=:\\/\\/)/gi)||[])[0];const n=typeof e<\"u\"?t.split(\"://\")[1]:t;return e=e===\"wss\"?\"https\":\"http\",[e,n].join(\"://\")}function ai(t,e,n){if(!t[e]||typeof t[e]!==n)throw new Error(`Missing or invalid \"${e}\" param`)}function Dn(t,e=Re){return Hn(t.split(Ln),e)}function ui(t){return Dn(t).join(fe)}function gt(t,e){return t.filter(n=>e.includes(n)).length===t.length}function Hn(t,e=Re){return t.slice(Math.max(t.length-e,0))}function fi(t){return Object.fromEntries(t.entries())}function li(t){return new Map(Object.entries(t))}function di(t,e){const n={};return Object.keys(t).forEach(r=>{n[r]=e(t[r])}),n}const hi=t=>t;function qn(t){return t.trim().replace(/^\\w/,e=>e.toUpperCase())}function pi(t){return t.split(fe).map(e=>qn(e)).join(fe)}function gi(t=xn,e){const n=Ie(t||xn);let r,o,i,s;return{resolve:c=>{i&&r&&(clearTimeout(i),r(c),s=Promise.resolve(c))},reject:c=>{i&&o&&(clearTimeout(i),o(c))},done:()=>new Promise((c,a)=>{if(s)return c(s);i=setTimeout(()=>{const u=new Error(e);s=Promise.reject(u),a(u)},n),r=c,o=a})}}function yi(t,e,n){return new Promise(async(r,o)=>{const i=setTimeout(()=>o(new Error(n)),e);try{const s=await t;r(s)}catch(s){o(s)}clearTimeout(i)})}function $e(t,e){if(typeof e==\"string\"&&e.startsWith(`${t}:`))return e;if(t.toLowerCase()===\"topic\"){if(typeof e!=\"string\")throw new Error('Value must be \"string\" for expirer target type: topic');return`topic:${e}`}else if(t.toLowerCase()===\"id\"){if(typeof e!=\"number\")throw new Error('Value must be \"number\" for expirer target type: id');return`id:${e}`}throw new Error(`Unknown expirer target type: ${t}`)}function mi(t){return $e(\"topic\",t)}function wi(t){return $e(\"id\",t)}function bi(t){const[e,n]=t.split(\":\"),r={id:void 0,topic:void 0};if(e===\"topic\"&&typeof n==\"string\")r.topic=n;else if(e===\"id\"&&Number.isInteger(Number(n)))r.id=Number(n);else throw new Error(`Invalid target, expected id:number or topic:string, got ${e}:${n}`);return r}function Ei(t,e){return Co((e||Date.now())+Ie(t))}function vi(t){return Date.now()>=Ie(t)}function xi(t,e){return`${t}${e?`:${e}`:\"\"}`}function ot(t=[],e=[]){return[...new Set([...t,...e])]}async function Si({id:t,topic:e,wcDeepLink:n}){var r;try{if(!n)return;const o=typeof n==\"string\"?JSON.parse(n):n,i=o?.href;if(typeof i!=\"string\")return;const s=Kn(i,t,e),c=xt();if(c===Y.browser){if(!((r=Yt())!=null&&r.hasFocus())){console.warn(\"Document does not have focus, skipping deeplink.\");return}Fn(s)}else c===Y.reactNative&&typeof(global==null?void 0:global.Linking)<\"u\"&&await global.Linking.openURL(s)}catch(o){console.error(o)}}function Kn(t,e,n){const r=`requestId=${e}&sessionTopic=${n}`;t.endsWith(\"/\")&&(t=t.slice(0,-1));let o=`${t}`;if(t.startsWith(\"https://t.me\")){const i=t.includes(\"?\")?\"&startapp=\":\"?startapp=\";o=`${o}${i}${Yn(r,!0)}`}else o=`${o}/wc?${r}`;return o}function Fn(t){let e=\"_self\";Zn()?e=\"_top\":(zn()||t.startsWith(\"https://\")||t.startsWith(\"http://\"))&&(e=\"_blank\"),window.open(t,e,\"noreferrer noopener\")}async function Oi(t,e){let n=\"\";try{if(Tt()&&(n=localStorage.getItem(e),n))return n;n=await t.getItem(e)}catch(r){console.error(r)}return n}function Le(t,e){return t.filter(n=>e.includes(n))}function Ai(t,e){if(!t.includes(e))return null;const n=t.split(/([&,?,=])/),r=n.indexOf(e);return n[r+2]}function Bi(){return typeof crypto<\"u\"&&crypto!=null&&crypto.randomUUID?crypto.randomUUID():\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/gu,t=>{const e=Math.random()*16|0;return(t===\"x\"?e:e&3|8).toString(16)})}function Ii(){return typeof process<\"u\"&&process.env.IS_VITEST===\"true\"}function zn(){return typeof window<\"u\"&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function Zn(){try{return window.self!==window.top}catch{return!1}}function Yn(t,e=!1){const n=Buffer.from(t).toString(\"base64\");return e?n.replace(/[=]/g,\"\"):n}function je(t){return Buffer.from(t,\"base64\").toString(\"utf-8\")}function Ni(t){return new Promise(e=>setTimeout(e,t))}function Wt(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(\"positive integer expected, got \"+t)}function Ui(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name===\"Uint8Array\"}function Xt(t,...e){if(!Ui(t))throw new Error(\"Uint8Array expected\");if(e.length>0&&!e.includes(t.length))throw new Error(\"Uint8Array expected of length \"+e+\", got length=\"+t.length)}function Ce(t){if(typeof t!=\"function\"||typeof t.create!=\"function\")throw new Error(\"Hash should be wrapped by utils.wrapConstructor\");Wt(t.outputLen),Wt(t.blockLen)}function Rt(t,e=!0){if(t.destroyed)throw new Error(\"Hash instance has been destroyed\");if(e&&t.finished)throw new Error(\"Hash#digest() has already been called\")}function Gn(t,e){Xt(t);const n=e.outputLen;if(t.length<n)throw new Error(\"digestInto() expects output buffer of length at least \"+n)}const le=BigInt(2**32-1),Wn=BigInt(32);function Ti(t,e=!1){return e?{h:Number(t&le),l:Number(t>>Wn&le)}:{h:Number(t>>Wn&le)|0,l:Number(t&le)|0}}function Ri(t,e=!1){let n=new Uint32Array(t.length),r=new Uint32Array(t.length);for(let o=0;o<t.length;o++){const{h:i,l:s}=Ti(t[o],e);[n[o],r[o]]=[i,s]}return[n,r]}const _i=(t,e,n)=>t<<n|e>>>32-n,$i=(t,e,n)=>e<<n|t>>>32-n,Li=(t,e,n)=>e<<n-32|t>>>64-n,ji=(t,e,n)=>t<<n-32|e>>>64-n,_t=typeof globalThis==\"object\"&&\"crypto\"in globalThis?globalThis.crypto:void 0;function Ci(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function Pe(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function ct(t,e){return t<<32-e|t>>>e}const Xn=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Pi(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}function Jn(t){for(let e=0;e<t.length;e++)t[e]=Pi(t[e])}function ki(t){if(typeof t!=\"string\")throw new Error(\"utf8ToBytes expected string, got \"+typeof t);return new Uint8Array(new TextEncoder().encode(t))}function $t(t){return typeof t==\"string\"&&(t=ki(t)),Xt(t),t}function Vi(...t){let e=0;for(let r=0;r<t.length;r++){const o=t[r];Xt(o),e+=o.length}const n=new Uint8Array(e);for(let r=0,o=0;r<t.length;r++){const i=t[r];n.set(i,o),o+=i.length}return n}class ke{clone(){return this._cloneInto()}}function Qn(t){const e=r=>t().update($t(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function Lt(t=32){if(_t&&typeof _t.getRandomValues==\"function\")return _t.getRandomValues(new Uint8Array(t));if(_t&&typeof _t.randomBytes==\"function\")return _t.randomBytes(t);throw new Error(\"crypto.getRandomValues must be defined\")}const tr=[],er=[],nr=[],Mi=BigInt(0),Jt=BigInt(1),Di=BigInt(2),Hi=BigInt(7),qi=BigInt(256),Ki=BigInt(113);for(let t=0,e=Jt,n=1,r=0;t<24;t++){[n,r]=[r,(2*n+3*r)%5],tr.push(2*(5*r+n)),er.push((t+1)*(t+2)/2%64);let o=Mi;for(let i=0;i<7;i++)e=(e<<Jt^(e>>Hi)*Ki)%qi,e&Di&&(o^=Jt<<(Jt<<BigInt(i))-Jt);nr.push(o)}const[Fi,zi]=Ri(nr,!0),rr=(t,e,n)=>n>32?Li(t,e,n):_i(t,e,n),or=(t,e,n)=>n>32?ji(t,e,n):$i(t,e,n);function Zi(t,e=24){const n=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let s=0;s<10;s++)n[s]=t[s]^t[s+10]^t[s+20]^t[s+30]^t[s+40];for(let s=0;s<10;s+=2){const c=(s+8)%10,a=(s+2)%10,u=n[a],l=n[a+1],f=rr(u,l,1)^n[c],h=or(u,l,1)^n[c+1];for(let y=0;y<50;y+=10)t[s+y]^=f,t[s+y+1]^=h}let o=t[2],i=t[3];for(let s=0;s<24;s++){const c=er[s],a=rr(o,i,c),u=or(o,i,c),l=tr[s];o=t[l],i=t[l+1],t[l]=a,t[l+1]=u}for(let s=0;s<50;s+=10){for(let c=0;c<10;c++)n[c]=t[s+c];for(let c=0;c<10;c++)t[s+c]^=~n[(c+2)%10]&n[(c+4)%10]}t[0]^=Fi[r],t[1]^=zi[r]}n.fill(0)}class En extends ke{constructor(e,n,r,o=!1,i=24){if(super(),this.blockLen=e,this.suffix=n,this.outputLen=r,this.enableXOF=o,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Wt(r),0>=this.blockLen||this.blockLen>=200)throw new Error(\"Sha3 supports only keccak-f1600 function\");this.state=new Uint8Array(200),this.state32=Ci(this.state)}keccak(){Xn||Jn(this.state32),Zi(this.state32,this.rounds),Xn||Jn(this.state32),this.posOut=0,this.pos=0}update(e){Rt(this);const{blockLen:n,state:r}=this;e=$t(e);const o=e.length;for(let i=0;i<o;){const s=Math.min(n-this.pos,o-i);for(let c=0;c<s;c++)r[this.pos++]^=e[i++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:n,pos:r,blockLen:o}=this;e[r]^=n,(n&128)!==0&&r===o-1&&this.keccak(),e[o-1]^=128,this.keccak()}writeInto(e){Rt(this,!1),Xt(e),this.finish();const n=this.state,{blockLen:r}=this;for(let o=0,i=e.length;o<i;){this.posOut>=r&&this.keccak();const s=Math.min(r-this.posOut,i-o);e.set(n.subarray(this.posOut,this.posOut+s),o),this.posOut+=s,o+=s}return e}xofInto(e){if(!this.enableXOF)throw new Error(\"XOF is not possible for this instance\");return this.writeInto(e)}xof(e){return Wt(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Gn(e,this),this.finished)throw new Error(\"digest() was already called\");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:n,suffix:r,outputLen:o,rounds:i,enableXOF:s}=this;return e||(e=new En(n,r,o,s,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=o,e.enableXOF=s,e.destroyed=this.destroyed,e}}const Yi=(t,e,n)=>Qn(()=>new En(e,t,n)),Gi=Yi(1,136,256/8),Wi=\"https://rpc.walletconnect.org/v1\";function Ve(t){const e=`\u0019Ethereum Signed Message:\n${t.length}`,n=new TextEncoder().encode(e+t);return\"0x\"+Buffer.from(Gi(n)).toString(\"hex\")}async function ir(t,e,n,r,o,i){switch(n.t){case\"eip191\":return await sr(t,e,n.s);case\"eip1271\":return await cr(t,e,n.s,r,o,i);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${n.t}`)}}async function sr(t,e,n){return(await ko({hash:Ve(e),signature:n})).toLowerCase()===t.toLowerCase()}async function cr(t,e,n,r,o,i){const s=Ne(r);if(!s.namespace||!s.reference)throw new Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${r}`);try{const c=\"0x1626ba7e\",a=\"0000000000000000000000000000000000000000000000000000000000000040\",u=\"0000000000000000000000000000000000000000000000000000000000000041\",l=n.substring(2),f=Ve(e).substring(2),h=c+f+a+u+l,y=await fetch(`${i||Wi}/?chainId=${r}&projectId=${o}`,{method:\"POST\",body:JSON.stringify({id:Xi(),jsonrpc:\"2.0\",method:\"eth_call\",params:[{to:t,data:h},\"latest\"]})}),{result:E}=await y.json();return E?E.slice(0,c.length).toLowerCase()===c.toLowerCase():!1}catch(c){return console.error(\"isValidEip1271Signature: \",c),!1}}function Xi(){return Date.now()+Math.floor(Math.random()*1e3)}function Ji(t){const e=atob(t),n=new Uint8Array(e.length);for(let s=0;s<e.length;s++)n[s]=e.charCodeAt(s);const r=n[0];if(r===0)throw new Error(\"No signatures found\");const o=1+r*64;if(n.length<o)throw new Error(\"Transaction data too short for claimed signature count\");if(n.length<100)throw new Error(\"Transaction too short\");const i=Buffer.from(t,\"base64\").slice(1,65);return Vo.encode(i)}var Qi=Object.defineProperty,ts=Object.defineProperties,es=Object.getOwnPropertyDescriptors,ar=Object.getOwnPropertySymbols,ns=Object.prototype.hasOwnProperty,rs=Object.prototype.propertyIsEnumerable,ur=(t,e,n)=>e in t?Qi(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Me=(t,e)=>{for(var n in e||(e={}))ns.call(e,n)&&ur(t,n,e[n]);if(ar)for(var n of ar(e))rs.call(e,n)&&ur(t,n,e[n]);return t},fr=(t,e)=>ts(t,es(e));const os=\"did:pkh:\",de=t=>t?.split(\":\"),lr=t=>{const e=t&&de(t);if(e)return t.includes(os)?e[3]:e[1]},dr=t=>{const e=t&&de(t);if(e)return e[2]+\":\"+e[3]},De=t=>{const e=t&&de(t);if(e)return e.pop()};async function is(t){const{cacao:e,projectId:n}=t,{s:r,p:o}=e,i=hr(o,o.iss),s=De(o.iss);return await ir(s,i,r,dr(o.iss),n)}const hr=(t,e)=>{const n=`${t.domain} wants you to sign in with your Ethereum account:`,r=De(e);if(!t.aud&&!t.uri)throw new Error(\"Either `aud` or `uri` is required to construct the message\");let o=t.statement||void 0;const i=`URI: ${t.aud||t.uri}`,s=`Version: ${t.version}`,c=`Chain ID: ${lr(e)}`,a=`Nonce: ${t.nonce}`,u=`Issued At: ${t.iat}`,l=t.exp?`Expiration Time: ${t.exp}`:void 0,f=t.nbf?`Not Before: ${t.nbf}`:void 0,h=t.requestId?`Request ID: ${t.requestId}`:void 0,y=t.resources?`Resources:${t.resources.map(p=>`\n- ${p}`).join(\"\")}`:void 0,E=pe(t.resources);if(E){const p=yt(E);o=Ke(o,p)}return[n,r,\"\",o,\"\",i,s,c,a,u,l,f,h,y].filter(p=>p!=null).join(`\n`)};function ss(t,e,n){return n.includes(\"did:pkh:\")||(n=`did:pkh:${n}`),{h:{t:\"caip122\"},p:{iss:n,domain:t.domain,aud:t.aud,version:t.version,nonce:t.nonce,iat:t.iat,statement:t.statement,requestId:t.requestId,resources:t.resources,nbf:t.nbf,exp:t.exp},s:e}}function cs(t){var e;const{authPayload:n,chains:r,methods:o}=t,i=n.statement||\"\";if(!(r!=null&&r.length))return n;const s=n.chains,c=Le(s,r);if(!(c!=null&&c.length))throw new Error(\"No supported chains\");const a=pr(n.resources);if(!a)return n;at(a);const u=gr(a,\"eip155\");let l=n?.resources||[];if(u!=null&&u.length){const f=yr(u),h=Le(f,o);if(!(h!=null&&h.length))throw new Error(`Supported methods don't satisfy the requested: ${JSON.stringify(f)}, supported: ${JSON.stringify(o)}`);const y=He(\"request\",h,{chains:c}),E=Er(a,\"eip155\",y);l=((e=n?.resources)==null?void 0:e.slice(0,-1))||[],l.push(he(E))}return fr(Me({},n),{statement:xr(i,pe(l)),chains:c,resources:n!=null&&n.resources||l.length>0?l:void 0})}function pr(t){const e=pe(t);if(e&&qe(e))return yt(e)}function as(t,e){var n;return(n=t?.att)==null?void 0:n.hasOwnProperty(e)}function gr(t,e){var n,r;return(n=t?.att)!=null&&n[e]?Object.keys((r=t?.att)==null?void 0:r[e]):[]}function us(t){return t?.map(e=>Object.keys(e))||[]}function yr(t){return t?.map(e=>{var n;return(n=e.split(\"/\"))==null?void 0:n[1]})||[]}function mr(t){return Buffer.from(JSON.stringify(t)).toString(\"base64\")}function wr(t){return JSON.parse(Buffer.from(t,\"base64\").toString(\"utf-8\"))}function at(t){if(!t)throw new Error(\"No recap provided, value is undefined\");if(!t.att)throw new Error(\"No `att` property found\");const e=Object.keys(t.att);if(!(e!=null&&e.length))throw new Error(\"No resources found in `att` property\");e.forEach(n=>{const r=t.att[n];if(Array.isArray(r))throw new Error(`Resource must be an object: ${n}`);if(typeof r!=\"object\")throw new Error(`Resource must be an object: ${n}`);if(!Object.keys(r).length)throw new Error(`Resource object is empty: ${n}`);Object.keys(r).forEach(o=>{const i=r[o];if(!Array.isArray(i))throw new Error(`Ability limits ${o} must be an array of objects, found: ${i}`);if(!i.length)throw new Error(`Value of ${o} is empty array, must be an array with objects`);i.forEach(s=>{if(typeof s!=\"object\")throw new Error(`Ability limits (${o}) must be an array of objects, found: ${s}`)})})})}function br(t,e,n,r={}){return n?.sort((o,i)=>o.localeCompare(i)),{att:{[t]:He(e,n,r)}}}function Er(t,e,n){var r;t.att[e]=Me({},n);const o=(r=Object.keys(t.att))==null?void 0:r.sort((s,c)=>s.localeCompare(c)),i={att:{}};return o.reduce((s,c)=>(s.att[c]=t.att[c],s),i)}function He(t,e,n={}){e=e?.sort((o,i)=>o.localeCompare(i));const r=e.map(o=>({[`${t}/${o}`]:[n]}));return Object.assign({},...r)}function he(t){return at(t),`urn:recap:${mr(t).replace(/=/g,\"\")}`}function yt(t){const e=wr(t.replace(\"urn:recap:\",\"\"));return at(e),e}function fs(t,e,n){const r=br(t,e,n);return he(r)}function qe(t){return t&&t.includes(\"urn:recap:\")}function ls(t,e){const n=yt(t),r=yt(e),o=vr(n,r);return he(o)}function vr(t,e){at(t),at(e);const n=Object.keys(t.att).concat(Object.keys(e.att)).sort((o,i)=>o.localeCompare(i)),r={att:{}};return n.forEach(o=>{var i,s;Object.keys(((i=t.att)==null?void 0:i[o])||{}).concat(Object.keys(((s=e.att)==null?void 0:s[o])||{})).sort((c,a)=>c.localeCompare(a)).forEach(c=>{var a,u;r.att[o]=fr(Me({},r.att[o]),{[c]:((a=t.att[o])==null?void 0:a[c])||((u=e.att[o])==null?void 0:u[c])})})}),r}function Ke(t=\"\",e){at(e);const n=\"I further authorize the stated URI to perform the following actions on my behalf: \";if(t.includes(n))return t;const r=[];let o=0;Object.keys(e.att).forEach(c=>{const a=Object.keys(e.att[c]).map(f=>({ability:f.split(\"/\")[0],action:f.split(\"/\")[1]}));a.sort((f,h)=>f.action.localeCompare(h.action));const u={};a.forEach(f=>{u[f.ability]||(u[f.ability]=[]),u[f.ability].push(f.action)});const l=Object.keys(u).map(f=>(o++,`(${o}) '${f}': '${u[f].join(\"', '\")}' for '${c}'.`));r.push(l.join(\", \").replace(\".,\",\".\"))});const i=r.join(\" \"),s=`${n}${i}`;return`${t?t+\" \":\"\"}${s}`}function ds(t){var e;const n=yt(t);at(n);const r=(e=n.att)==null?void 0:e.eip155;return r?Object.keys(r).map(o=>o.split(\"/\")[1]):[]}function hs(t){const e=yt(t);at(e);const n=[];return Object.values(e.att).forEach(r=>{Object.values(r).forEach(o=>{var i;(i=o?.[0])!=null&&i.chains&&n.push(o[0].chains)})}),[...new Set(n.flat())]}function xr(t,e){if(!e)return t;const n=yt(e);return at(n),Ke(t,n)}function pe(t){if(!t)return;const e=t?.[t.length-1];return qe(e)?e:void 0}function Fe(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(\"positive integer expected, got \"+t)}function Sr(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name===\"Uint8Array\"}function tt(t,...e){if(!Sr(t))throw new Error(\"Uint8Array expected\");if(e.length>0&&!e.includes(t.length))throw new Error(\"Uint8Array expected of length \"+e+\", got length=\"+t.length)}function Or(t,e=!0){if(t.destroyed)throw new Error(\"Hash instance has been destroyed\");if(e&&t.finished)throw new Error(\"Hash#digest() has already been called\")}function ps(t,e){tt(t);const n=e.outputLen;if(t.length<n)throw new Error(\"digestInto() expects output buffer of length at least \"+n)}function Ar(t){if(typeof t!=\"boolean\")throw new Error(`boolean expected, not ${t}`)}const mt=t=>new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4)),gs=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),ys=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!ys)throw new Error(\"Non little-endian hardware is not supported\");function ms(t){if(typeof t!=\"string\")throw new Error(\"string expected\");return new Uint8Array(new TextEncoder().encode(t))}function ze(t){if(typeof t==\"string\")t=ms(t);else if(Sr(t))t=Ze(t);else throw new Error(\"Uint8Array expected, got \"+typeof t);return t}function ws(t,e){if(e==null||typeof e!=\"object\")throw new Error(\"options must be defined\");return Object.assign(t,e)}function bs(t,e){if(t.length!==e.length)return!1;let n=0;for(let r=0;r<t.length;r++)n|=t[r]^e[r];return n===0}const Es=(t,e)=>{function n(r,...o){if(tt(r),t.nonceLength!==void 0){const l=o[0];if(!l)throw new Error(\"nonce / iv required\");t.varSizeNonce?tt(l):tt(l,t.nonceLength)}const i=t.tagLength;i&&o[1]!==void 0&&tt(o[1]);const s=e(r,...o),c=(l,f)=>{if(f!==void 0){if(l!==2)throw new Error(\"cipher output not supported\");tt(f)}};let a=!1;return{encrypt(l,f){if(a)throw new Error(\"cannot encrypt() twice with same key + nonce\");return a=!0,tt(l),c(s.encrypt.length,f),s.encrypt(l,f)},decrypt(l,f){if(tt(l),i&&l.length<i)throw new Error(\"invalid ciphertext length: smaller than tagLength=\"+i);return c(s.decrypt.length,f),s.decrypt(l,f)}}}return Object.assign(n,t),n};function Br(t,e,n=!0){if(e===void 0)return new Uint8Array(t);if(e.length!==t)throw new Error(\"invalid output length, expected \"+t+\", got: \"+e.length);if(n&&!vs(e))throw new Error(\"invalid output, must be aligned\");return e}function Ir(t,e,n,r){if(typeof t.setBigUint64==\"function\")return t.setBigUint64(e,n,r);const o=BigInt(32),i=BigInt(4294967295),s=Number(n>>o&i),c=Number(n&i),a=r?4:0,u=r?0:4;t.setUint32(e+a,s,r),t.setUint32(e+u,c,r)}function vs(t){return t.byteOffset%4===0}function Ze(t){return Uint8Array.from(t)}function jt(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}const Nr=t=>Uint8Array.from(t.split(\"\").map(e=>e.charCodeAt(0))),xs=Nr(\"expand 16-byte k\"),Ss=Nr(\"expand 32-byte k\"),Os=mt(xs),As=mt(Ss);function V(t,e){return t<<e|t>>>32-e}function Ye(t){return t.byteOffset%4===0}const ge=64,Bs=16,Ur=2**32-1,Tr=new Uint32Array;function Is(t,e,n,r,o,i,s,c){const a=o.length,u=new Uint8Array(ge),l=mt(u),f=Ye(o)&&Ye(i),h=f?mt(o):Tr,y=f?mt(i):Tr;for(let E=0;E<a;s++){if(t(e,n,r,l,s,c),s>=Ur)throw new Error(\"arx: counter overflow\");const p=Math.min(ge,a-E);if(f&&p===ge){const d=E/4;if(E%4!==0)throw new Error(\"arx: invalid block position\");for(let v=0,m;v<Bs;v++)m=d+v,y[m]=h[m]^l[v];E+=ge;continue}for(let d=0,v;d<p;d++)v=E+d,i[v]=o[v]^u[d];E+=p}}function Ns(t,e){const{allowShortKeys:n,extendNonceFn:r,counterLength:o,counterRight:i,rounds:s}=ws({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e);if(typeof t!=\"function\")throw new Error(\"core must be a function\");return Fe(o),Fe(s),Ar(i),Ar(n),(c,a,u,l,f=0)=>{tt(c),tt(a),tt(u);const h=u.length;if(l===void 0&&(l=new Uint8Array(h)),tt(l),Fe(f),f<0||f>=Ur)throw new Error(\"arx: counter overflow\");if(l.length<h)throw new Error(`arx: output (${l.length}) is shorter than data (${h})`);const y=[];let E=c.length,p,d;if(E===32)y.push(p=Ze(c)),d=As;else if(E===16&&n)p=new Uint8Array(32),p.set(c),p.set(c,16),d=Os,y.push(p);else throw new Error(`arx: invalid 32-byte key, got length=${E}`);Ye(a)||y.push(a=Ze(a));const v=mt(p);if(r){if(a.length!==24)throw new Error(\"arx: extended nonce must be 24 bytes\");r(d,v,mt(a.subarray(0,16)),v),a=a.subarray(16)}const m=16-o;if(m!==a.length)throw new Error(`arx: nonce must be ${m} or 16 bytes`);if(m!==12){const N=new Uint8Array(12);N.set(a,i?0:12-a.length),a=N,y.push(a)}const O=mt(a);return Is(t,d,v,O,u,l,f,s),jt(...y),l}}const F=(t,e)=>t[e++]&255|(t[e++]&255)<<8;class Us{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,e=ze(e),tt(e,32);const n=F(e,0),r=F(e,2),o=F(e,4),i=F(e,6),s=F(e,8),c=F(e,10),a=F(e,12),u=F(e,14);this.r[0]=n&8191,this.r[1]=(n>>>13|r<<3)&8191,this.r[2]=(r>>>10|o<<6)&7939,this.r[3]=(o>>>7|i<<9)&8191,this.r[4]=(i>>>4|s<<12)&255,this.r[5]=s>>>1&8190,this.r[6]=(s>>>14|c<<2)&8191,this.r[7]=(c>>>11|a<<5)&8065,this.r[8]=(a>>>8|u<<8)&8191,this.r[9]=u>>>5&127;for(let l=0;l<8;l++)this.pad[l]=F(e,16+2*l)}process(e,n,r=!1){const o=r?0:2048,{h:i,r:s}=this,c=s[0],a=s[1],u=s[2],l=s[3],f=s[4],h=s[5],y=s[6],E=s[7],p=s[8],d=s[9],v=F(e,n+0),m=F(e,n+2),O=F(e,n+4),N=F(e,n+6),$=F(e,n+8),B=F(e,n+10),A=F(e,n+12),T=F(e,n+14);let S=i[0]+(v&8191),L=i[1]+((v>>>13|m<<3)&8191),U=i[2]+((m>>>10|O<<6)&8191),_=i[3]+((O>>>7|N<<9)&8191),j=i[4]+((N>>>4|$<<12)&8191),g=i[5]+($>>>1&8191),w=i[6]+(($>>>14|B<<2)&8191),b=i[7]+((B>>>11|A<<5)&8191),I=i[8]+((A>>>8|T<<8)&8191),R=i[9]+(T>>>5|o),x=0,C=x+S*c+L*(5*d)+U*(5*p)+_*(5*E)+j*(5*y);x=C>>>13,C&=8191,C+=g*(5*h)+w*(5*f)+b*(5*l)+I*(5*u)+R*(5*a),x+=C>>>13,C&=8191;let P=x+S*a+L*c+U*(5*d)+_*(5*p)+j*(5*E);x=P>>>13,P&=8191,P+=g*(5*y)+w*(5*h)+b*(5*f)+I*(5*l)+R*(5*u),x+=P>>>13,P&=8191;let k=x+S*u+L*a+U*c+_*(5*d)+j*(5*p);x=k>>>13,k&=8191,k+=g*(5*E)+w*(5*y)+b*(5*h)+I*(5*f)+R*(5*l),x+=k>>>13,k&=8191;let M=x+S*l+L*u+U*a+_*c+j*(5*d);x=M>>>13,M&=8191,M+=g*(5*p)+w*(5*E)+b*(5*y)+I*(5*h)+R*(5*f),x+=M>>>13,M&=8191;let D=x+S*f+L*l+U*u+_*a+j*c;x=D>>>13,D&=8191,D+=g*(5*d)+w*(5*p)+b*(5*E)+I*(5*y)+R*(5*h),x+=D>>>13,D&=8191;let z=x+S*h+L*f+U*l+_*u+j*a;x=z>>>13,z&=8191,z+=g*c+w*(5*d)+b*(5*p)+I*(5*E)+R*(5*y),x+=z>>>13,z&=8191;let Z=x+S*y+L*h+U*f+_*l+j*u;x=Z>>>13,Z&=8191,Z+=g*a+w*c+b*(5*d)+I*(5*p)+R*(5*E),x+=Z>>>13,Z&=8191;let st=x+S*E+L*y+U*h+_*f+j*l;x=st>>>13,st&=8191,st+=g*u+w*a+b*c+I*(5*d)+R*(5*p),x+=st>>>13,st&=8191;let W=x+S*p+L*E+U*y+_*h+j*f;x=W>>>13,W&=8191,W+=g*l+w*u+b*a+I*c+R*(5*d),x+=W>>>13,W&=8191;let J=x+S*d+L*p+U*E+_*y+j*h;x=J>>>13,J&=8191,J+=g*f+w*l+b*u+I*a+R*c,x+=J>>>13,J&=8191,x=(x<<2)+x|0,x=x+C|0,C=x&8191,x=x>>>13,P+=x,i[0]=C,i[1]=P,i[2]=k,i[3]=M,i[4]=D,i[5]=z,i[6]=Z,i[7]=st,i[8]=W,i[9]=J}finalize(){const{h:e,pad:n}=this,r=new Uint16Array(10);let o=e[1]>>>13;e[1]&=8191;for(let c=2;c<10;c++)e[c]+=o,o=e[c]>>>13,e[c]&=8191;e[0]+=o*5,o=e[0]>>>13,e[0]&=8191,e[1]+=o,o=e[1]>>>13,e[1]&=8191,e[2]+=o,r[0]=e[0]+5,o=r[0]>>>13,r[0]&=8191;for(let c=1;c<10;c++)r[c]=e[c]+o,o=r[c]>>>13,r[c]&=8191;r[9]-=8192;let i=(o^1)-1;for(let c=0;c<10;c++)r[c]&=i;i=~i;for(let c=0;c<10;c++)e[c]=e[c]&i|r[c];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let s=e[0]+n[0];e[0]=s&65535;for(let c=1;c<8;c++)s=(e[c]+n[c]|0)+(s>>>16)|0,e[c]=s&65535;jt(r)}update(e){Or(this);const{buffer:n,blockLen:r}=this;e=ze(e);const o=e.length;for(let i=0;i<o;){const s=Math.min(r-this.pos,o-i);if(s===r){for(;r<=o-i;i+=r)this.process(e,i);continue}n.set(e.subarray(i,i+s),this.pos),this.pos+=s,i+=s,this.pos===r&&(this.process(n,0,!1),this.pos=0)}return this}destroy(){jt(this.h,this.r,this.buffer,this.pad)}digestInto(e){Or(this),ps(e,this),this.finished=!0;const{buffer:n,h:r}=this;let{pos:o}=this;if(o){for(n[o++]=1;o<16;o++)n[o]=0;this.process(n,0,!0)}this.finalize();let i=0;for(let s=0;s<8;s++)e[i++]=r[s]>>>0,e[i++]=r[s]>>>8;return e}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}}function Ts(t){const e=(r,o)=>t(o).update(ze(r)).digest(),n=t(new Uint8Array(32));return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=r=>t(r),e}const Rs=Ts(t=>new Us(t));function _s(t,e,n,r,o,i=20){let s=t[0],c=t[1],a=t[2],u=t[3],l=e[0],f=e[1],h=e[2],y=e[3],E=e[4],p=e[5],d=e[6],v=e[7],m=o,O=n[0],N=n[1],$=n[2],B=s,A=c,T=a,S=u,L=l,U=f,_=h,j=y,g=E,w=p,b=d,I=v,R=m,x=O,C=N,P=$;for(let M=0;M<i;M+=2)B=B+L|0,R=V(R^B,16),g=g+R|0,L=V(L^g,12),B=B+L|0,R=V(R^B,8),g=g+R|0,L=V(L^g,7),A=A+U|0,x=V(x^A,16),w=w+x|0,U=V(U^w,12),A=A+U|0,x=V(x^A,8),w=w+x|0,U=V(U^w,7),T=T+_|0,C=V(C^T,16),b=b+C|0,_=V(_^b,12),T=T+_|0,C=V(C^T,8),b=b+C|0,_=V(_^b,7),S=S+j|0,P=V(P^S,16),I=I+P|0,j=V(j^I,12),S=S+j|0,P=V(P^S,8),I=I+P|0,j=V(j^I,7),B=B+U|0,P=V(P^B,16),b=b+P|0,U=V(U^b,12),B=B+U|0,P=V(P^B,8),b=b+P|0,U=V(U^b,7),A=A+_|0,R=V(R^A,16),I=I+R|0,_=V(_^I,12),A=A+_|0,R=V(R^A,8),I=I+R|0,_=V(_^I,7),T=T+j|0,x=V(x^T,16),g=g+x|0,j=V(j^g,12),T=T+j|0,x=V(x^T,8),g=g+x|0,j=V(j^g,7),S=S+L|0,C=V(C^S,16),w=w+C|0,L=V(L^w,12),S=S+L|0,C=V(C^S,8),w=w+C|0,L=V(L^w,7);let k=0;r[k++]=s+B|0,r[k++]=c+A|0,r[k++]=a+T|0,r[k++]=u+S|0,r[k++]=l+L|0,r[k++]=f+U|0,r[k++]=h+_|0,r[k++]=y+j|0,r[k++]=E+g|0,r[k++]=p+w|0,r[k++]=d+b|0,r[k++]=v+I|0,r[k++]=m+R|0,r[k++]=O+x|0,r[k++]=N+C|0,r[k++]=$+P|0}const $s=Ns(_s,{counterRight:!1,counterLength:4,allowShortKeys:!1}),Ls=new Uint8Array(16),Rr=(t,e)=>{t.update(e);const n=e.length%16;n&&t.update(Ls.subarray(n))},js=new Uint8Array(32);function _r(t,e,n,r,o){const i=t(e,n,js),s=Rs.create(i);o&&Rr(s,o),Rr(s,r);const c=new Uint8Array(16),a=gs(c);Ir(a,0,BigInt(o?o.length:0),!0),Ir(a,8,BigInt(r.length),!0),s.update(c);const u=s.digest();return jt(i,c),u}const Cs=t=>(e,n,r)=>({encrypt(i,s){const c=i.length;s=Br(c+16,s,!1),s.set(i);const a=s.subarray(0,-16);t(e,n,a,a,1);const u=_r(t,e,n,a,r);return s.set(u,c),jt(u),s},decrypt(i,s){s=Br(i.length-16,s,!1);const c=i.subarray(0,-16),a=i.subarray(-16),u=_r(t,e,n,c,r);if(!bs(a,u))throw new Error(\"invalid tag\");return s.set(i.subarray(0,-16)),t(e,n,s,s,1),jt(u),s}}),$r=Es({blockSize:64,nonceLength:12,tagLength:16},Cs($s));class Lr extends ke{constructor(e,n){super(),this.finished=!1,this.destroyed=!1,Ce(e);const r=$t(n);if(this.iHash=e.create(),typeof this.iHash.update!=\"function\")throw new Error(\"Expected instance of class which extends utils.Hash\");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const o=this.blockLen,i=new Uint8Array(o);i.set(r.length>o?e.create().update(r).digest():r);for(let s=0;s<i.length;s++)i[s]^=54;this.iHash.update(i),this.oHash=e.create();for(let s=0;s<i.length;s++)i[s]^=106;this.oHash.update(i),i.fill(0)}update(e){return Rt(this),this.iHash.update(e),this}digestInto(e){Rt(this),Xt(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:n,iHash:r,finished:o,destroyed:i,blockLen:s,outputLen:c}=this;return e=e,e.finished=o,e.destroyed=i,e.blockLen=s,e.outputLen=c,e.oHash=n._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const ye=(t,e,n)=>new Lr(t,e).update(n).digest();ye.create=(t,e)=>new Lr(t,e);function Ps(t,e,n){return Ce(t),n===void 0&&(n=new Uint8Array(t.outputLen)),ye(t,$t(n),$t(e))}const Ge=new Uint8Array([0]),jr=new Uint8Array;function ks(t,e,n,r=32){if(Ce(t),Wt(r),r>255*t.outputLen)throw new Error(\"Length should be <= 255*HashLen\");const o=Math.ceil(r/t.outputLen);n===void 0&&(n=jr);const i=new Uint8Array(o*t.outputLen),s=ye.create(t,e),c=s._cloneInto(),a=new Uint8Array(s.outputLen);for(let u=0;u<o;u++)Ge[0]=u+1,c.update(u===0?jr:a).update(n).update(Ge).digestInto(a),i.set(a,t.outputLen*u),s._cloneInto(c);return s.destroy(),c.destroy(),a.fill(0),Ge.fill(0),i.slice(0,r)}const Vs=(t,e,n,r,o)=>ks(t,Ps(t,e,n),r,o);function Ms(t,e,n,r){if(typeof t.setBigUint64==\"function\")return t.setBigUint64(e,n,r);const o=BigInt(32),i=BigInt(4294967295),s=Number(n>>o&i),c=Number(n&i),a=r?4:0,u=r?0:4;t.setUint32(e+a,s,r),t.setUint32(e+u,c,r)}function Ds(t,e,n){return t&e^~t&n}function Hs(t,e,n){return t&e^t&n^e&n}class qs extends ke{constructor(e,n,r,o){super(),this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Pe(this.buffer)}update(e){Rt(this);const{view:n,buffer:r,blockLen:o}=this;e=$t(e);const i=e.length;for(let s=0;s<i;){const c=Math.min(o-this.pos,i-s);if(c===o){const a=Pe(e);for(;o<=i-s;s+=o)this.process(a,s);continue}r.set(e.subarray(s,s+c),this.pos),this.pos+=c,s+=c,this.pos===o&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Rt(this),Gn(e,this),this.finished=!0;const{buffer:n,view:r,blockLen:o,isLE:i}=this;let{pos:s}=this;n[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>o-s&&(this.process(r,0),s=0);for(let f=s;f<o;f++)n[f]=0;Ms(r,o-8,BigInt(this.length*8),i),this.process(r,0);const c=Pe(e),a=this.outputLen;if(a%4)throw new Error(\"_sha2: outputLen should be aligned to 32bit\");const u=a/4,l=this.get();if(u>l.length)throw new Error(\"_sha2: outputLen bigger than state\");for(let f=0;f<u;f++)c.setUint32(4*f,l[f],i)}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:n,buffer:r,length:o,finished:i,destroyed:s,pos:c}=this;return e.length=o,e.pos=c,e.finished=i,e.destroyed=s,o%n&&e.buffer.set(r),e}}const Ks=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),wt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),bt=new Uint32Array(64);class Fs extends qs{constructor(){super(64,32,8,!1),this.A=wt[0]|0,this.B=wt[1]|0,this.C=wt[2]|0,this.D=wt[3]|0,this.E=wt[4]|0,this.F=wt[5]|0,this.G=wt[6]|0,this.H=wt[7]|0}get(){const{A:e,B:n,C:r,D:o,E:i,F:s,G:c,H:a}=this;return[e,n,r,o,i,s,c,a]}set(e,n,r,o,i,s,c,a){this.A=e|0,this.B=n|0,this.C=r|0,this.D=o|0,this.E=i|0,this.F=s|0,this.G=c|0,this.H=a|0}process(e,n){for(let f=0;f<16;f++,n+=4)bt[f]=e.getUint32(n,!1);for(let f=16;f<64;f++){const h=bt[f-15],y=bt[f-2],E=ct(h,7)^ct(h,18)^h>>>3,p=ct(y,17)^ct(y,19)^y>>>10;bt[f]=p+bt[f-7]+E+bt[f-16]|0}let{A:r,B:o,C:i,D:s,E:c,F:a,G:u,H:l}=this;for(let f=0;f<64;f++){const h=ct(c,6)^ct(c,11)^ct(c,25),y=l+h+Ds(c,a,u)+Ks[f]+bt[f]|0,p=(ct(r,2)^ct(r,13)^ct(r,22))+Hs(r,o,i)|0;l=u,u=a,a=c,c=s+y|0,s=i,i=o,o=r,r=y+p|0}r=r+this.A|0,o=o+this.B|0,i=i+this.C|0,s=s+this.D|0,c=c+this.E|0,a=a+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,o,i,s,c,a,u,l)}roundClean(){bt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Qt=Qn(()=>new Fs);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const me=BigInt(0),we=BigInt(1),zs=BigInt(2);function St(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name===\"Uint8Array\"}function te(t){if(!St(t))throw new Error(\"Uint8Array expected\")}function Ct(t,e){if(typeof e!=\"boolean\")throw new Error(t+\" boolean expected, got \"+e)}const Zs=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,\"0\"));function Pt(t){te(t);let e=\"\";for(let n=0;n<t.length;n++)e+=Zs[t[n]];return e}function kt(t){const e=t.toString(16);return e.length&1?\"0\"+e:e}function We(t){if(typeof t!=\"string\")throw new Error(\"hex string expected, got \"+typeof t);return t===\"\"?me:BigInt(\"0x\"+t)}const ut={_0:48,_9:57,A:65,F:70,a:97,f:102};function Cr(t){if(t>=ut._0&&t<=ut._9)return t-ut._0;if(t>=ut.A&&t<=ut.F)return t-(ut.A-10);if(t>=ut.a&&t<=ut.f)return t-(ut.a-10)}function Vt(t){if(typeof t!=\"string\")throw new Error(\"hex string expected, got \"+typeof t);const e=t.length,n=e/2;if(e%2)throw new Error(\"hex string expected, got unpadded hex of length \"+e);const r=new Uint8Array(n);for(let o=0,i=0;o<n;o++,i+=2){const s=Cr(t.charCodeAt(i)),c=Cr(t.charCodeAt(i+1));if(s===void 0||c===void 0){const a=t[i]+t[i+1];throw new Error('hex string expected, got non-hex character \"'+a+'\" at index '+i)}r[o]=s*16+c}return r}function Ot(t){return We(Pt(t))}function ee(t){return te(t),We(Pt(Uint8Array.from(t).reverse()))}function Mt(t,e){return Vt(t.toString(16).padStart(e*2,\"0\"))}function be(t,e){return Mt(t,e).reverse()}function Ys(t){return Vt(kt(t))}function et(t,e,n){let r;if(typeof e==\"string\")try{r=Vt(e)}catch(i){throw new Error(t+\" must be hex string or Uint8Array, cause: \"+i)}else if(St(e))r=Uint8Array.from(e);else throw new Error(t+\" must be hex string or Uint8Array\");const o=r.length;if(typeof n==\"number\"&&o!==n)throw new Error(t+\" of length \"+n+\" expected, got \"+o);return r}function ne(...t){let e=0;for(let r=0;r<t.length;r++){const o=t[r];te(o),e+=o.length}const n=new Uint8Array(e);for(let r=0,o=0;r<t.length;r++){const i=t[r];n.set(i,o),o+=i.length}return n}function Gs(t,e){if(t.length!==e.length)return!1;let n=0;for(let r=0;r<t.length;r++)n|=t[r]^e[r];return n===0}function Ws(t){if(typeof t!=\"string\")throw new Error(\"string expected\");return new Uint8Array(new TextEncoder().encode(t))}const Xe=t=>typeof t==\"bigint\"&&me<=t;function Ee(t,e,n){return Xe(t)&&Xe(e)&&Xe(n)&&e<=t&&t<n}function ft(t,e,n,r){if(!Ee(e,n,r))throw new Error(\"expected valid \"+t+\": \"+n+\" <= n < \"+r+\", got \"+e)}function Pr(t){let e;for(e=0;t>me;t>>=we,e+=1);return e}function Xs(t,e){return t>>BigInt(e)&we}function Js(t,e,n){return t|(n?we:me)<<BigInt(e)}const Je=t=>(zs<<BigInt(t-1))-we,Qe=t=>new Uint8Array(t),kr=t=>Uint8Array.from(t);function Vr(t,e,n){if(typeof t!=\"number\"||t<2)throw new Error(\"hashLen must be a number\");if(typeof e!=\"number\"||e<2)throw new Error(\"qByteLen must be a number\");if(typeof n!=\"function\")throw new Error(\"hmacFn must be a function\");let r=Qe(t),o=Qe(t),i=0;const s=()=>{r.fill(1),o.fill(0),i=0},c=(...f)=>n(o,r,...f),a=(f=Qe())=>{o=c(kr([0]),f),r=c(),f.length!==0&&(o=c(kr([1]),f),r=c())},u=()=>{if(i++>=1e3)throw new Error(\"drbg: tried 1000 values\");let f=0;const h=[];for(;f<e;){r=c();const y=r.slice();h.push(y),f+=r.length}return ne(...h)};return(f,h)=>{s(),a(f);let y;for(;!(y=h(u()));)a();return s(),y}}const Qs={bigint:t=>typeof t==\"bigint\",function:t=>typeof t==\"function\",boolean:t=>typeof t==\"boolean\",string:t=>typeof t==\"string\",stringOrUint8Array:t=>typeof t==\"string\"||St(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t==\"function\"&&Number.isSafeInteger(t.outputLen)};function Dt(t,e,n={}){const r=(o,i,s)=>{const c=Qs[i];if(typeof c!=\"function\")throw new Error(\"invalid validator function\");const a=t[o];if(!(s&&a===void 0)&&!c(a,t))throw new Error(\"param \"+String(o)+\" is invalid. Expected \"+i+\", got \"+a)};for(const[o,i]of Object.entries(e))r(o,i,!1);for(const[o,i]of Object.entries(n))r(o,i,!0);return t}const tc=()=>{throw new Error(\"not implemented\")};function tn(t){const e=new WeakMap;return(n,...r)=>{const o=e.get(n);if(o!==void 0)return o;const i=t(n,...r);return e.set(n,i),i}}var ec=Object.freeze({__proto__:null,isBytes:St,abytes:te,abool:Ct,bytesToHex:Pt,numberToHexUnpadded:kt,hexToNumber:We,hexToBytes:Vt,bytesToNumberBE:Ot,bytesToNumberLE:ee,numberToBytesBE:Mt,numberToBytesLE:be,numberToVarBytesBE:Ys,ensureBytes:et,concatBytes:ne,equalBytes:Gs,utf8ToBytes:Ws,inRange:Ee,aInRange:ft,bitLen:Pr,bitGet:Xs,bitSet:Js,bitMask:Je,createHmacDrbg:Vr,validateObject:Dt,notImplemented:tc,memoized:tn});const q=BigInt(0),H=BigInt(1),At=BigInt(2),nc=BigInt(3),en=BigInt(4),Mr=BigInt(5),Dr=BigInt(8);function X(t,e){const n=t%e;return n>=q?n:e+n}function Hr(t,e,n){if(e<q)throw new Error(\"invalid exponent, negatives unsupported\");if(n<=q)throw new Error(\"invalid modulus\");if(n===H)return q;let r=H;for(;e>q;)e&H&&(r=r*t%n),t=t*t%n,e>>=H;return r}function it(t,e,n){let r=t;for(;e-- >q;)r*=r,r%=n;return r}function nn(t,e){if(t===q)throw new Error(\"invert: expected non-zero number\");if(e<=q)throw new Error(\"invert: expected positive modulus, got \"+e);let n=X(t,e),r=e,o=q,i=H;for(;n!==q;){const c=r/n,a=r%n,u=o-i*c;r=n,n=a,o=i,i=u}if(r!==H)throw new Error(\"invert: does not exist\");return X(o,e)}function rc(t){const e=(t-H)/At;let n,r,o;for(n=t-H,r=0;n%At===q;n/=At,r++);for(o=At;o<t&&Hr(o,e,t)!==t-H;o++)if(o>1e3)throw new Error(\"Cannot find square root: likely non-prime P\");if(r===1){const s=(t+H)/en;return function(a,u){const l=a.pow(u,s);if(!a.eql(a.sqr(l),u))throw new Error(\"Cannot find square root\");return l}}const i=(n+H)/At;return function(c,a){if(c.pow(a,e)===c.neg(c.ONE))throw new Error(\"Cannot find square root\");let u=r,l=c.pow(c.mul(c.ONE,o),n),f=c.pow(a,i),h=c.pow(a,n);for(;!c.eql(h,c.ONE);){if(c.eql(h,c.ZERO))return c.ZERO;let y=1;for(let p=c.sqr(h);y<u&&!c.eql(p,c.ONE);y++)p=c.sqr(p);const E=c.pow(l,H<<BigInt(u-y-1));l=c.sqr(E),f=c.mul(f,E),h=c.mul(h,l),u=y}return f}}function oc(t){if(t%en===nc){const e=(t+H)/en;return function(r,o){const i=r.pow(o,e);if(!r.eql(r.sqr(i),o))throw new Error(\"Cannot find square root\");return i}}if(t%Dr===Mr){const e=(t-Mr)/Dr;return function(r,o){const i=r.mul(o,At),s=r.pow(i,e),c=r.mul(o,s),a=r.mul(r.mul(c,At),s),u=r.mul(c,r.sub(a,r.ONE));if(!r.eql(r.sqr(u),o))throw new Error(\"Cannot find square root\");return u}}return rc(t)}const ic=[\"create\",\"isValid\",\"is0\",\"neg\",\"inv\",\"sqrt\",\"sqr\",\"eql\",\"add\",\"sub\",\"mul\",\"pow\",\"div\",\"addN\",\"subN\",\"mulN\",\"sqrN\"];function sc(t){const e={ORDER:\"bigint\",MASK:\"bigint\",BYTES:\"isSafeInteger\",BITS:\"isSafeInteger\"},n=ic.reduce((r,o)=>(r[o]=\"function\",r),e);return Dt(t,n)}function cc(t,e,n){if(n<q)throw new Error(\"invalid exponent, negatives unsupported\");if(n===q)return t.ONE;if(n===H)return e;let r=t.ONE,o=e;for(;n>q;)n&H&&(r=t.mul(r,o)),o=t.sqr(o),n>>=H;return r}function ac(t,e){const n=new Array(e.length),r=e.reduce((i,s,c)=>t.is0(s)?i:(n[c]=i,t.mul(i,s)),t.ONE),o=t.inv(r);return e.reduceRight((i,s,c)=>t.is0(s)?i:(n[c]=t.mul(i,n[c]),t.mul(i,s)),o),n}function qr(t,e){const n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function Kr(t,e,n=!1,r={}){if(t<=q)throw new Error(\"invalid field: expected ORDER > 0, got \"+t);const{nBitLength:o,nByteLength:i}=qr(t,e);if(i>2048)throw new Error(\"invalid field: expected ORDER of <= 2048 bytes\");let s;const c=Object.freeze({ORDER:t,isLE:n,BITS:o,BYTES:i,MASK:Je(o),ZERO:q,ONE:H,create:a=>X(a,t),isValid:a=>{if(typeof a!=\"bigint\")throw new Error(\"invalid field element: expected bigint, got \"+typeof a);return q<=a&&a<t},is0:a=>a===q,isOdd:a=>(a&H)===H,neg:a=>X(-a,t),eql:(a,u)=>a===u,sqr:a=>X(a*a,t),add:(a,u)=>X(a+u,t),sub:(a,u)=>X(a-u,t),mul:(a,u)=>X(a*u,t),pow:(a,u)=>cc(c,a,u),div:(a,u)=>X(a*nn(u,t),t),sqrN:a=>a*a,addN:(a,u)=>a+u,subN:(a,u)=>a-u,mulN:(a,u)=>a*u,inv:a=>nn(a,t),sqrt:r.sqrt||(a=>(s||(s=oc(t)),s(c,a))),invertBatch:a=>ac(c,a),cmov:(a,u,l)=>l?u:a,toBytes:a=>n?be(a,i):Mt(a,i),fromBytes:a=>{if(a.length!==i)throw new Error(\"Field.fromBytes: expected \"+i+\" bytes, got \"+a.length);return n?ee(a):Ot(a)}});return Object.freeze(c)}function Fr(t){if(typeof t!=\"bigint\")throw new Error(\"field order must be bigint\");const e=t.toString(2).length;return Math.ceil(e/8)}function zr(t){const e=Fr(t);return e+Math.ceil(e/2)}function uc(t,e,n=!1){const r=t.length,o=Fr(e),i=zr(e);if(r<16||r<i||r>1024)throw new Error(\"expected \"+i+\"-1024 bytes of input, got \"+r);const s=n?ee(t):Ot(t),c=X(s,e-H)+H;return n?be(c,o):Mt(c,o)}const Zr=BigInt(0),ve=BigInt(1);function rn(t,e){const n=e.negate();return t?n:e}function Yr(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error(\"invalid window size, expected [1..\"+e+\"], got W=\"+t)}function on(t,e){Yr(t,e);const n=Math.ceil(e/t)+1,r=2**(t-1);return{windows:n,windowSize:r}}function fc(t,e){if(!Array.isArray(t))throw new Error(\"array expected\");t.forEach((n,r)=>{if(!(n instanceof e))throw new Error(\"invalid point at index \"+r)})}function lc(t,e){if(!Array.isArray(t))throw new Error(\"array of scalars expected\");t.forEach((n,r)=>{if(!e.isValid(n))throw new Error(\"invalid scalar at index \"+r)})}const sn=new WeakMap,Gr=new WeakMap;function cn(t){return Gr.get(t)||1}function dc(t,e){return{constTimeNegate:rn,hasPrecomputes(n){return cn(n)!==1},unsafeLadder(n,r,o=t.ZERO){let i=n;for(;r>Zr;)r&ve&&(o=o.add(i)),i=i.double(),r>>=ve;return o},precomputeWindow(n,r){const{windows:o,windowSize:i}=on(r,e),s=[];let c=n,a=c;for(let u=0;u<o;u++){a=c,s.push(a);for(let l=1;l<i;l++)a=a.add(c),s.push(a);c=a.double()}return s},wNAF(n,r,o){const{windows:i,windowSize:s}=on(n,e);let c=t.ZERO,a=t.BASE;const u=BigInt(2**n-1),l=2**n,f=BigInt(n);for(let h=0;h<i;h++){const y=h*s;let E=Number(o&u);o>>=f,E>s&&(E-=l,o+=ve);const p=y,d=y+Math.abs(E)-1,v=h%2!==0,m=E<0;E===0?a=a.add(rn(v,r[p])):c=c.add(rn(m,r[d]))}return{p:c,f:a}},wNAFUnsafe(n,r,o,i=t.ZERO){const{windows:s,windowSize:c}=on(n,e),a=BigInt(2**n-1),u=2**n,l=BigInt(n);for(let f=0;f<s;f++){const h=f*c;if(o===Zr)break;let y=Number(o&a);if(o>>=l,y>c&&(y-=u,o+=ve),y===0)continue;let E=r[h+Math.abs(y)-1];y<0&&(E=E.negate()),i=i.add(E)}return i},getPrecomputes(n,r,o){let i=sn.get(r);return i||(i=this.precomputeWindow(r,n),n!==1&&sn.set(r,o(i))),i},wNAFCached(n,r,o){const i=cn(n);return this.wNAF(i,this.getPrecomputes(i,n,o),r)},wNAFCachedUnsafe(n,r,o,i){const s=cn(n);return s===1?this.unsafeLadder(n,r,i):this.wNAFUnsafe(s,this.getPrecomputes(s,n,o),r,i)},setWindowSize(n,r){Yr(r,e),Gr.set(n,r),sn.delete(n)}}}function hc(t,e,n,r){if(fc(n,t),lc(r,e),n.length!==r.length)throw new Error(\"arrays of points and scalars must have equal length\");const o=t.ZERO,i=Pr(BigInt(n.length)),s=i>12?i-3:i>4?i-2:i?2:1,c=(1<<s)-1,a=new Array(c+1).fill(o),u=Math.floor((e.BITS-1)/s)*s;let l=o;for(let f=u;f>=0;f-=s){a.fill(o);for(let y=0;y<r.length;y++){const E=r[y],p=Number(E>>BigInt(f)&BigInt(c));a[p]=a[p].add(n[y])}let h=o;for(let y=a.length-1,E=o;y>0;y--)E=E.add(a[y]),h=h.add(E);if(l=l.add(h),f!==0)for(let y=0;y<s;y++)l=l.double()}return l}function Wr(t){return sc(t.Fp),Dt(t,{n:\"bigint\",h:\"bigint\",Gx:\"field\",Gy:\"field\"},{nBitLength:\"isSafeInteger\",nByteLength:\"isSafeInteger\"}),Object.freeze({...qr(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}BigInt(0),BigInt(1),BigInt(2),BigInt(8);const Ht=BigInt(0),an=BigInt(1);function pc(t){return Dt(t,{a:\"bigint\"},{montgomeryBits:\"isSafeInteger\",nByteLength:\"isSafeInteger\",adjustScalarBytes:\"function\",domain:\"function\",powPminus2:\"function\",Gu:\"bigint\"}),Object.freeze({...t})}function gc(t){const e=pc(t),{P:n}=e,r=m=>X(m,n),o=e.montgomeryBits,i=Math.ceil(o/8),s=e.nByteLength,c=e.adjustScalarBytes||(m=>m),a=e.powPminus2||(m=>Hr(m,n-BigInt(2),n));function u(m,O,N){const $=r(m*(O-N));return O=r(O-$),N=r(N+$),[O,N]}const l=(e.a-BigInt(2))/BigInt(4);function f(m,O){ft(\"u\",m,Ht,n),ft(\"scalar\",O,Ht,n);const N=O,$=m;let B=an,A=Ht,T=m,S=an,L=Ht,U;for(let j=BigInt(o-1);j>=Ht;j--){const g=N>>j&an;L^=g,U=u(L,B,T),B=U[0],T=U[1],U=u(L,A,S),A=U[0],S=U[1],L=g;const w=B+A,b=r(w*w),I=B-A,R=r(I*I),x=b-R,C=T+S,P=T-S,k=r(P*w),M=r(C*I),D=k+M,z=k-M;T=r(D*D),S=r($*r(z*z)),B=r(b*R),A=r(x*(b+r(l*x)))}U=u(L,B,T),B=U[0],T=U[1],U=u(L,A,S),A=U[0],S=U[1];const _=a(A);return r(B*_)}function h(m){return be(r(m),i)}function y(m){const O=et(\"u coordinate\",m,i);return s===32&&(O[31]&=127),ee(O)}function E(m){const O=et(\"scalar\",m),N=O.length;if(N!==i&&N!==s){let $=\"\"+i+\" or \"+s;throw new Error(\"invalid scalar, expected \"+$+\" bytes, got \"+N)}return ee(c(O))}function p(m,O){const N=y(O),$=E(m),B=f(N,$);if(B===Ht)throw new Error(\"invalid private or public key received\");return h(B)}const d=h(e.Gu);function v(m){return p(m,d)}return{scalarMult:p,scalarMultBase:v,getSharedSecret:(m,O)=>p(m,O),getPublicKey:m=>v(m),utils:{randomPrivateKey:()=>e.randomBytes(e.nByteLength)},GuBytes:d}}const un=BigInt(\"57896044618658097711785492504343953926634992332820282019728792003956564819949\");BigInt(0);const yc=BigInt(1),Xr=BigInt(2),mc=BigInt(3),wc=BigInt(5);BigInt(8);function bc(t){const e=BigInt(10),n=BigInt(20),r=BigInt(40),o=BigInt(80),i=un,c=t*t%i*t%i,a=it(c,Xr,i)*c%i,u=it(a,yc,i)*t%i,l=it(u,wc,i)*u%i,f=it(l,e,i)*l%i,h=it(f,n,i)*f%i,y=it(h,r,i)*h%i,E=it(y,o,i)*y%i,p=it(E,o,i)*y%i,d=it(p,e,i)*l%i;return{pow_p_5_8:it(d,Xr,i)*t%i,b2:c}}function Ec(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}const fn=gc({P:un,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:t=>{const e=un,{pow_p_5_8:n,b2:r}=bc(t);return X(it(n,mc,e)*r,e)},adjustScalarBytes:Ec,randomBytes:Lt});function Jr(t){t.lowS!==void 0&&Ct(\"lowS\",t.lowS),t.prehash!==void 0&&Ct(\"prehash\",t.prehash)}function vc(t){const e=Wr(t);Dt(e,{a:\"field\",b:\"field\"},{allowedPrivateKeyLengths:\"array\",wrapPrivateKey:\"boolean\",isTorsionFree:\"function\",clearCofactor:\"function\",allowInfinityPoint:\"boolean\",fromBytes:\"function\",toBytes:\"function\"});const{endo:n,Fp:r,a:o}=e;if(n){if(!r.eql(o,r.ZERO))throw new Error(\"invalid endomorphism, can only be defined for Koblitz curves that have a=0\");if(typeof n!=\"object\"||typeof n.beta!=\"bigint\"||typeof n.splitScalar!=\"function\")throw new Error(\"invalid endomorphism, expected beta: bigint and splitScalar: function\")}return Object.freeze({...e})}const{bytesToNumberBE:xc,hexToBytes:Sc}=ec;class Oc extends Error{constructor(e=\"\"){super(e)}}const lt={Err:Oc,_tlv:{encode:(t,e)=>{const{Err:n}=lt;if(t<0||t>256)throw new n(\"tlv.encode: wrong tag\");if(e.length&1)throw new n(\"tlv.encode: unpadded data\");const r=e.length/2,o=kt(r);if(o.length/2&128)throw new n(\"tlv.encode: long form length too big\");const i=r>127?kt(o.length/2|128):\"\";return kt(t)+i+o+e},decode(t,e){const{Err:n}=lt;let r=0;if(t<0||t>256)throw new n(\"tlv.encode: wrong tag\");if(e.length<2||e[r++]!==t)throw new n(\"tlv.decode: wrong tlv\");const o=e[r++],i=!!(o&128);let s=0;if(!i)s=o;else{const a=o&127;if(!a)throw new n(\"tlv.decode(long): indefinite length not supported\");if(a>4)throw new n(\"tlv.decode(long): byte length is too big\");const u=e.subarray(r,r+a);if(u.length!==a)throw new n(\"tlv.decode: length bytes not complete\");if(u[0]===0)throw new n(\"tlv.decode(long): zero leftmost byte\");for(const l of u)s=s<<8|l;if(r+=a,s<128)throw new n(\"tlv.decode(long): not minimal encoding\")}const c=e.subarray(r,r+s);if(c.length!==s)throw new n(\"tlv.decode: wrong value length\");return{v:c,l:e.subarray(r+s)}}},_int:{encode(t){const{Err:e}=lt;if(t<dt)throw new e(\"integer: negative integers are not allowed\");let n=kt(t);if(Number.parseInt(n[0],16)&8&&(n=\"00\"+n),n.length&1)throw new e(\"unexpected DER parsing assertion: unpadded hex\");return n},decode(t){const{Err:e}=lt;if(t[0]&128)throw new e(\"invalid signature integer: negative\");if(t[0]===0&&!(t[1]&128))throw new e(\"invalid signature integer: unnecessary leading zero\");return xc(t)}},toSig(t){const{Err:e,_int:n,_tlv:r}=lt,o=typeof t==\"string\"?Sc(t):t;te(o);const{v:i,l:s}=r.decode(48,o);if(s.length)throw new e(\"invalid signature: left bytes after parsing\");const{v:c,l:a}=r.decode(2,i),{v:u,l}=r.decode(2,a);if(l.length)throw new e(\"invalid signature: left bytes after parsing\");return{r:n.decode(c),s:n.decode(u)}},hexFromSig(t){const{_tlv:e,_int:n}=lt,r=e.encode(2,n.encode(t.r)),o=e.encode(2,n.encode(t.s)),i=r+o;return e.encode(48,i)}},dt=BigInt(0),K=BigInt(1);BigInt(2);const Qr=BigInt(3);BigInt(4);function Ac(t){const e=vc(t),{Fp:n}=e,r=Kr(e.n,e.nBitLength),o=e.toBytes||((p,d,v)=>{const m=d.toAffine();return ne(Uint8Array.from([4]),n.toBytes(m.x),n.toBytes(m.y))}),i=e.fromBytes||(p=>{const d=p.subarray(1),v=n.fromBytes(d.subarray(0,n.BYTES)),m=n.fromBytes(d.subarray(n.BYTES,2*n.BYTES));return{x:v,y:m}});function s(p){const{a:d,b:v}=e,m=n.sqr(p),O=n.mul(m,p);return n.add(n.add(O,n.mul(p,d)),v)}if(!n.eql(n.sqr(e.Gy),s(e.Gx)))throw new Error(\"bad generator point: equation left != right\");function c(p){return Ee(p,K,e.n)}function a(p){const{allowedPrivateKeyLengths:d,nByteLength:v,wrapPrivateKey:m,n:O}=e;if(d&&typeof p!=\"bigint\"){if(St(p)&&(p=Pt(p)),typeof p!=\"string\"||!d.includes(p.length))throw new Error(\"invalid private key\");p=p.padStart(v*2,\"0\")}let N;try{N=typeof p==\"bigint\"?p:Ot(et(\"private key\",p,v))}catch{throw new Error(\"invalid private key, expected hex or \"+v+\" bytes, got \"+typeof p)}return m&&(N=X(N,O)),ft(\"private key\",N,K,O),N}function u(p){if(!(p instanceof h))throw new Error(\"ProjectivePoint expected\")}const l=tn((p,d)=>{const{px:v,py:m,pz:O}=p;if(n.eql(O,n.ONE))return{x:v,y:m};const N=p.is0();d==null&&(d=N?n.ONE:n.inv(O));const $=n.mul(v,d),B=n.mul(m,d),A=n.mul(O,d);if(N)return{x:n.ZERO,y:n.ZERO};if(!n.eql(A,n.ONE))throw new Error(\"invZ was invalid\");return{x:$,y:B}}),f=tn(p=>{if(p.is0()){if(e.allowInfinityPoint&&!n.is0(p.py))return;throw new Error(\"bad point: ZERO\")}const{x:d,y:v}=p.toAffine();if(!n.isValid(d)||!n.isValid(v))throw new Error(\"bad point: x or y not FE\");const m=n.sqr(v),O=s(d);if(!n.eql(m,O))throw new Error(\"bad point: equation left != right\");if(!p.isTorsionFree())throw new Error(\"bad point: not in prime-order subgroup\");return!0});class h{constructor(d,v,m){if(this.px=d,this.py=v,this.pz=m,d==null||!n.isValid(d))throw new Error(\"x required\");if(v==null||!n.isValid(v))throw new Error(\"y required\");if(m==null||!n.isValid(m))throw new Error(\"z required\");Object.freeze(this)}static fromAffine(d){const{x:v,y:m}=d||{};if(!d||!n.isValid(v)||!n.isValid(m))throw new Error(\"invalid affine point\");if(d instanceof h)throw new Error(\"projective point not allowed\");const O=N=>n.eql(N,n.ZERO);return O(v)&&O(m)?h.ZERO:new h(v,m,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(d){const v=n.invertBatch(d.map(m=>m.pz));return d.map((m,O)=>m.toAffine(v[O])).map(h.fromAffine)}static fromHex(d){const v=h.fromAffine(i(et(\"pointHex\",d)));return v.assertValidity(),v}static fromPrivateKey(d){return h.BASE.multiply(a(d))}static msm(d,v){return hc(h,r,d,v)}_setWindowSize(d){E.setWindowSize(this,d)}assertValidity(){f(this)}hasEvenY(){const{y:d}=this.toAffine();if(n.isOdd)return!n.isOdd(d);throw new Error(\"Field doesn't support isOdd\")}equals(d){u(d);const{px:v,py:m,pz:O}=this,{px:N,py:$,pz:B}=d,A=n.eql(n.mul(v,B),n.mul(N,O)),T=n.eql(n.mul(m,B),n.mul($,O));return A&&T}negate(){return new h(this.px,n.neg(this.py),this.pz)}double(){const{a:d,b:v}=e,m=n.mul(v,Qr),{px:O,py:N,pz:$}=this;let B=n.ZERO,A=n.ZERO,T=n.ZERO,S=n.mul(O,O),L=n.mul(N,N),U=n.mul($,$),_=n.mul(O,N);return _=n.add(_,_),T=n.mul(O,$),T=n.add(T,T),B=n.mul(d,T),A=n.mul(m,U),A=n.add(B,A),B=n.sub(L,A),A=n.add(L,A),A=n.mul(B,A),B=n.mul(_,B),T=n.mul(m,T),U=n.mul(d,U),_=n.sub(S,U),_=n.mul(d,_),_=n.add(_,T),T=n.add(S,S),S=n.add(T,S),S=n.add(S,U),S=n.mul(S,_),A=n.add(A,S),U=n.mul(N,$),U=n.add(U,U),S=n.mul(U,_),B=n.sub(B,S),T=n.mul(U,L),T=n.add(T,T),T=n.add(T,T),new h(B,A,T)}add(d){u(d);const{px:v,py:m,pz:O}=this,{px:N,py:$,pz:B}=d;let A=n.ZERO,T=n.ZERO,S=n.ZERO;const L=e.a,U=n.mul(e.b,Qr);let _=n.mul(v,N),j=n.mul(m,$),g=n.mul(O,B),w=n.add(v,m),b=n.add(N,$);w=n.mul(w,b),b=n.add(_,j),w=n.sub(w,b),b=n.add(v,O);let I=n.add(N,B);return b=n.mul(b,I),I=n.add(_,g),b=n.sub(b,I),I=n.add(m,O),A=n.add($,B),I=n.mul(I,A),A=n.add(j,g),I=n.sub(I,A),S=n.mul(L,b),A=n.mul(U,g),S=n.add(A,S),A=n.sub(j,S),S=n.add(j,S),T=n.mul(A,S),j=n.add(_,_),j=n.add(j,_),g=n.mul(L,g),b=n.mul(U,b),j=n.add(j,g),g=n.sub(_,g),g=n.mul(L,g),b=n.add(b,g),_=n.mul(j,b),T=n.add(T,_),_=n.mul(I,b),A=n.mul(w,A),A=n.sub(A,_),_=n.mul(w,j),S=n.mul(I,S),S=n.add(S,_),new h(A,T,S)}subtract(d){return this.add(d.negate())}is0(){return this.equals(h.ZERO)}wNAF(d){return E.wNAFCached(this,d,h.normalizeZ)}multiplyUnsafe(d){const{endo:v,n:m}=e;ft(\"scalar\",d,dt,m);const O=h.ZERO;if(d===dt)return O;if(this.is0()||d===K)return this;if(!v||E.hasPrecomputes(this))return E.wNAFCachedUnsafe(this,d,h.normalizeZ);let{k1neg:N,k1:$,k2neg:B,k2:A}=v.splitScalar(d),T=O,S=O,L=this;for(;$>dt||A>dt;)$&K&&(T=T.add(L)),A&K&&(S=S.add(L)),L=L.double(),$>>=K,A>>=K;return N&&(T=T.negate()),B&&(S=S.negate()),S=new h(n.mul(S.px,v.beta),S.py,S.pz),T.add(S)}multiply(d){const{endo:v,n:m}=e;ft(\"scalar\",d,K,m);let O,N;if(v){const{k1neg:$,k1:B,k2neg:A,k2:T}=v.splitScalar(d);let{p:S,f:L}=this.wNAF(B),{p:U,f:_}=this.wNAF(T);S=E.constTimeNegate($,S),U=E.constTimeNegate(A,U),U=new h(n.mul(U.px,v.beta),U.py,U.pz),O=S.add(U),N=L.add(_)}else{const{p:$,f:B}=this.wNAF(d);O=$,N=B}return h.normalizeZ([O,N])[0]}multiplyAndAddUnsafe(d,v,m){const O=h.BASE,N=(B,A)=>A===dt||A===K||!B.equals(O)?B.multiplyUnsafe(A):B.multiply(A),$=N(this,v).add(N(d,m));return $.is0()?void 0:$}toAffine(d){return l(this,d)}isTorsionFree(){const{h:d,isTorsionFree:v}=e;if(d===K)return!0;if(v)return v(h,this);throw new Error(\"isTorsionFree() has not been declared for the elliptic curve\")}clearCofactor(){const{h:d,clearCofactor:v}=e;return d===K?this:v?v(h,this):this.multiplyUnsafe(e.h)}toRawBytes(d=!0){return Ct(\"isCompressed\",d),this.assertValidity(),o(h,this,d)}toHex(d=!0){return Ct(\"isCompressed\",d),Pt(this.toRawBytes(d))}}h.BASE=new h(e.Gx,e.Gy,n.ONE),h.ZERO=new h(n.ZERO,n.ONE,n.ZERO);const y=e.nBitLength,E=dc(h,e.endo?Math.ceil(y/2):y);return{CURVE:e,ProjectivePoint:h,normPrivateKeyToScalar:a,weierstrassEquation:s,isWithinCurveOrder:c}}function Bc(t){const e=Wr(t);return Dt(e,{hash:\"hash\",hmac:\"function\",randomBytes:\"function\"},{bits2int:\"function\",bits2int_modN:\"function\",lowS:\"boolean\"}),Object.freeze({lowS:!0,...e})}function Ic(t){const e=Bc(t),{Fp:n,n:r}=e,o=n.BYTES+1,i=2*n.BYTES+1;function s(g){return X(g,r)}function c(g){return nn(g,r)}const{ProjectivePoint:a,normPrivateKeyToScalar:u,weierstrassEquation:l,isWithinCurveOrder:f}=Ac({...e,toBytes(g,w,b){const I=w.toAffine(),R=n.toBytes(I.x),x=ne;return Ct(\"isCompressed\",b),b?x(Uint8Array.from([w.hasEvenY()?2:3]),R):x(Uint8Array.from([4]),R,n.toBytes(I.y))},fromBytes(g){const w=g.length,b=g[0],I=g.subarray(1);if(w===o&&(b===2||b===3)){const R=Ot(I);if(!Ee(R,K,n.ORDER))throw new Error(\"Point is not on curve\");const x=l(R);let C;try{C=n.sqrt(x)}catch(M){const D=M instanceof Error?\": \"+M.message:\"\";throw new Error(\"Point is not on curve\"+D)}const P=(C&K)===K;return(b&1)===1!==P&&(C=n.neg(C)),{x:R,y:C}}else if(w===i&&b===4){const R=n.fromBytes(I.subarray(0,n.BYTES)),x=n.fromBytes(I.subarray(n.BYTES,2*n.BYTES));return{x:R,y:x}}else{const R=o,x=i;throw new Error(\"invalid Point, expected length of \"+R+\", or uncompressed \"+x+\", got \"+w)}}}),h=g=>Pt(Mt(g,e.nByteLength));function y(g){const w=r>>K;return g>w}function E(g){return y(g)?s(-g):g}const p=(g,w,b)=>Ot(g.slice(w,b));class d{constructor(w,b,I){this.r=w,this.s=b,this.recovery=I,this.assertValidity()}static fromCompact(w){const b=e.nByteLength;return w=et(\"compactSignature\",w,b*2),new d(p(w,0,b),p(w,b,2*b))}static fromDER(w){const{r:b,s:I}=lt.toSig(et(\"DER\",w));return new d(b,I)}assertValidity(){ft(\"r\",this.r,K,r),ft(\"s\",this.s,K,r)}addRecoveryBit(w){return new d(this.r,this.s,w)}recoverPublicKey(w){const{r:b,s:I,recovery:R}=this,x=B(et(\"msgHash\",w));if(R==null||![0,1,2,3].includes(R))throw new Error(\"recovery id invalid\");const C=R===2||R===3?b+e.n:b;if(C>=n.ORDER)throw new Error(\"recovery id 2 or 3 invalid\");const P=(R&1)===0?\"02\":\"03\",k=a.fromHex(P+h(C)),M=c(C),D=s(-x*M),z=s(I*M),Z=a.BASE.multiplyAndAddUnsafe(k,D,z);if(!Z)throw new Error(\"point at infinify\");return Z.assertValidity(),Z}hasHighS(){return y(this.s)}normalizeS(){return this.hasHighS()?new d(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return Vt(this.toDERHex())}toDERHex(){return lt.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Vt(this.toCompactHex())}toCompactHex(){return h(this.r)+h(this.s)}}const v={isValidPrivateKey(g){try{return u(g),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{const g=zr(e.n);return uc(e.randomBytes(g),e.n)},precompute(g=8,w=a.BASE){return w._setWindowSize(g),w.multiply(BigInt(3)),w}};function m(g,w=!0){return a.fromPrivateKey(g).toRawBytes(w)}function O(g){const w=St(g),b=typeof g==\"string\",I=(w||b)&&g.length;return w?I===o||I===i:b?I===2*o||I===2*i:g instanceof a}function N(g,w,b=!0){if(O(g))throw new Error(\"first arg must be private key\");if(!O(w))throw new Error(\"second arg must be public key\");return a.fromHex(w).multiply(u(g)).toRawBytes(b)}const $=e.bits2int||function(g){if(g.length>8192)throw new Error(\"input is too large\");const w=Ot(g),b=g.length*8-e.nBitLength;return b>0?w>>BigInt(b):w},B=e.bits2int_modN||function(g){return s($(g))},A=Je(e.nBitLength);function T(g){return ft(\"num < 2^\"+e.nBitLength,g,dt,A),Mt(g,e.nByteLength)}function S(g,w,b=L){if([\"recovered\",\"canonical\"].some(W=>W in b))throw new Error(\"sign() legacy options not supported\");const{hash:I,randomBytes:R}=e;let{lowS:x,prehash:C,extraEntropy:P}=b;x==null&&(x=!0),g=et(\"msgHash\",g),Jr(b),C&&(g=et(\"prehashed msgHash\",I(g)));const k=B(g),M=u(w),D=[T(M),T(k)];if(P!=null&&P!==!1){const W=P===!0?R(n.BYTES):P;D.push(et(\"extraEntropy\",W))}const z=ne(...D),Z=k;function st(W){const J=$(W);if(!f(J))return;const Be=c(J),zt=a.BASE.multiply(J).toAffine(),vt=s(zt.x);if(vt===dt)return;const Zt=s(Be*s(Z+vt*M));if(Zt===dt)return;let Ut=(zt.x===vt?0:2)|Number(zt.y&K),vn=Zt;return x&&y(Zt)&&(vn=E(Zt),Ut^=1),new d(vt,vn,Ut)}return{seed:z,k2sig:st}}const L={lowS:e.lowS,prehash:!1},U={lowS:e.lowS,prehash:!1};function _(g,w,b=L){const{seed:I,k2sig:R}=S(g,w,b),x=e;return Vr(x.hash.outputLen,x.nByteLength,x.hmac)(I,R)}a.BASE._setWindowSize(8);function j(g,w,b,I=U){const R=g;w=et(\"msgHash\",w),b=et(\"publicKey\",b);const{lowS:x,prehash:C,format:P}=I;if(Jr(I),\"strict\"in I)throw new Error(\"options.strict was renamed to lowS\");if(P!==void 0&&P!==\"compact\"&&P!==\"der\")throw new Error(\"format must be compact or der\");const k=typeof R==\"string\"||St(R),M=!k&&!P&&typeof R==\"object\"&&R!==null&&typeof R.r==\"bigint\"&&typeof R.s==\"bigint\";if(!k&&!M)throw new Error(\"invalid signature, expected Uint8Array, hex string or Signature instance\");let D,z;try{if(M&&(D=new d(R.r,R.s)),k){try{P!==\"compact\"&&(D=d.fromDER(R))}catch(Ut){if(!(Ut instanceof lt.Err))throw Ut}!D&&P!==\"der\"&&(D=d.fromCompact(R))}z=a.fromHex(b)}catch{return!1}if(!D||x&&D.hasHighS())return!1;C&&(w=e.hash(w));const{r:Z,s:st}=D,W=B(w),J=c(st),Be=s(W*J),zt=s(Z*J),vt=a.BASE.multiplyAndAddUnsafe(z,Be,zt)?.toAffine();return vt?s(vt.x)===Z:!1}return{CURVE:e,getPublicKey:m,getSharedSecret:N,sign:_,verify:j,ProjectivePoint:a,Signature:d,utils:v}}function Nc(t){return{hash:t,hmac:(e,...n)=>ye(t,e,Vi(...n)),randomBytes:Lt}}function Uc(t,e){const n=r=>Ic({...t,...Nc(r)});return{...n(e),create:n}}const to=Kr(BigInt(\"0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff\")),Tc=to.create(BigInt(\"-3\")),Rc=BigInt(\"0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b\"),_c=Uc({a:Tc,b:Rc,Fp:to,n:BigInt(\"0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\"),Gx:BigInt(\"0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296\"),Gy:BigInt(\"0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5\"),h:BigInt(1),lowS:!1},Qt),ln=\"base10\",G=\"base16\",qt=\"base64pad\",xe=\"base64url\",Kt=\"utf8\",dn=0,Ft=1,re=2,$c=0,eo=1,oe=12,hn=32;function Lc(){const t=fn.utils.randomPrivateKey(),e=fn.getPublicKey(t);return{privateKey:Q(t,G),publicKey:Q(e,G)}}function jc(){const t=Lt(hn);return Q(t,G)}function Cc(t,e){const n=fn.getSharedSecret(rt(t,G),rt(e,G)),r=Vs(Qt,n,void 0,void 0,hn);return Q(r,G)}function Pc(t){const e=Qt(rt(t,G));return Q(e,G)}function kc(t){const e=Qt(rt(t,Kt));return Q(e,G)}function pn(t){return rt(`${t}`,ln)}function Bt(t){return Number(Q(t,ln))}function no(t){return t.replace(/\\+/g,\"-\").replace(/\\//g,\"_\").replace(/=/g,\"\")}function ro(t){const e=t.replace(/-/g,\"+\").replace(/_/g,\"/\"),n=(4-e.length%4)%4;return e+\"=\".repeat(n)}function Vc(t){const e=pn(typeof t.type<\"u\"?t.type:dn);if(Bt(e)===Ft&&typeof t.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");const n=typeof t.senderPublicKey<\"u\"?rt(t.senderPublicKey,G):void 0,r=typeof t.iv<\"u\"?rt(t.iv,G):Lt(oe),o=rt(t.symKey,G),i=$r(o,r).encrypt(rt(t.message,Kt)),s=gn({type:e,sealed:i,iv:r,senderPublicKey:n});return t.encoding===xe?no(s):s}function Mc(t){const e=rt(t.symKey,G),{sealed:n,iv:r}=Se({encoded:t.encoded,encoding:t.encoding}),o=$r(e,r).decrypt(n);if(o===null)throw new Error(\"Failed to decrypt\");return Q(o,Kt)}function Dc(t,e){const n=pn(re),r=Lt(oe),o=rt(t,Kt),i=gn({type:n,sealed:o,iv:r});return e===xe?no(i):i}function Hc(t,e){const{sealed:n}=Se({encoded:t,encoding:e});return Q(n,Kt)}function gn(t){if(Bt(t.type)===re)return Q(Gt([t.type,t.sealed]),qt);if(Bt(t.type)===Ft){if(typeof t.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");return Q(Gt([t.type,t.senderPublicKey,t.iv,t.sealed]),qt)}return Q(Gt([t.type,t.iv,t.sealed]),qt)}function Se(t){const e=(t.encoding||qt)===xe?ro(t.encoded):t.encoded,n=rt(e,qt),r=n.slice($c,eo),o=eo;if(Bt(r)===Ft){const a=o+hn,u=a+oe,l=n.slice(o,a),f=n.slice(a,u),h=n.slice(u);return{type:r,sealed:h,iv:f,senderPublicKey:l}}if(Bt(r)===re){const a=n.slice(o),u=Lt(oe);return{type:r,sealed:a,iv:u}}const i=o+oe,s=n.slice(o,i),c=n.slice(i);return{type:r,sealed:c,iv:s}}function qc(t,e){const n=Se({encoded:t,encoding:e?.encoding});return oo({type:Bt(n.type),senderPublicKey:typeof n.senderPublicKey<\"u\"?Q(n.senderPublicKey,G):void 0,receiverPublicKey:e?.receiverPublicKey})}function oo(t){const e=t?.type||dn;if(e===Ft){if(typeof t?.senderPublicKey>\"u\")throw new Error(\"missing sender public key\");if(typeof t?.receiverPublicKey>\"u\")throw new Error(\"missing receiver public key\")}return{type:e,senderPublicKey:t?.senderPublicKey,receiverPublicKey:t?.receiverPublicKey}}function Kc(t){return t.type===Ft&&typeof t.senderPublicKey==\"string\"&&typeof t.receiverPublicKey==\"string\"}function Fc(t){return t.type===re}function io(t){const e=Buffer.from(t.x,\"base64\"),n=Buffer.from(t.y,\"base64\");return Gt([new Uint8Array([4]),e,n])}function zc(t,e){const[n,r,o]=t.split(\".\"),i=Buffer.from(ro(o),\"base64\");if(i.length!==64)throw new Error(\"Invalid signature length\");const s=i.slice(0,32),c=i.slice(32,64),a=`${n}.${r}`,u=Qt(a),l=io(e);if(!_c.verify(Gt([s,c]),u,l))throw new Error(\"Invalid signature\");return Mo(t).payload}const so=\"irn\";function Zc(t){return t?.relay||{protocol:so}}function Yc(t){const e=Do[t];if(typeof e>\"u\")throw new Error(`Relay Protocol not supported: ${t}`);return e}function co(t,e=\"-\"){const n={},r=\"relay\"+e;return Object.keys(t).forEach(o=>{if(o.startsWith(r)){const i=o.replace(r,\"\"),s=t[o];n[i]=s}}),n}function Gc(t){if(!t.includes(\"wc:\")){const u=je(t);u!=null&&u.includes(\"wc:\")&&(t=u)}t=t.includes(\"wc://\")?t.replace(\"wc://\",\"\"):t,t=t.includes(\"wc:\")?t.replace(\"wc:\",\"\"):t;const e=t.indexOf(\":\"),n=t.indexOf(\"?\")!==-1?t.indexOf(\"?\"):void 0,r=t.substring(0,e),o=t.substring(e+1,n).split(\"@\"),i=typeof n<\"u\"?t.substring(n):\"\",s=new URLSearchParams(i),c={};s.forEach((u,l)=>{c[l]=u});const a=typeof c.methods==\"string\"?c.methods.split(\",\"):void 0;return{protocol:r,topic:ao(o[0]),version:parseInt(o[1],10),symKey:c.symKey,relay:co(c),methods:a,expiryTimestamp:c.expiryTimestamp?parseInt(c.expiryTimestamp,10):void 0}}function ao(t){return t.startsWith(\"//\")?t.substring(2):t}function uo(t,e=\"-\"){const n=\"relay\",r={};return Object.keys(t).forEach(o=>{const i=o,s=n+e+i;t[i]&&(r[s]=t[i])}),r}function Wc(t){const e=new URLSearchParams,n=uo(t.relay);Object.keys(n).sort().forEach(o=>{e.set(o,n[o])}),e.set(\"symKey\",t.symKey),t.expiryTimestamp&&e.set(\"expiryTimestamp\",t.expiryTimestamp.toString()),t.methods&&e.set(\"methods\",t.methods.join(\",\"));const r=e.toString();return`${t.protocol}:${t.topic}@${t.version}?${r}`}function Xc(t,e,n){return`${t}?wc_ev=${n}&topic=${e}`}var Jc=Object.defineProperty,Qc=Object.defineProperties,ta=Object.getOwnPropertyDescriptors,fo=Object.getOwnPropertySymbols,ea=Object.prototype.hasOwnProperty,na=Object.prototype.propertyIsEnumerable,lo=(t,e,n)=>e in t?Jc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ra=(t,e)=>{for(var n in e||(e={}))ea.call(e,n)&&lo(t,n,e[n]);if(fo)for(var n of fo(e))na.call(e,n)&&lo(t,n,e[n]);return t},oa=(t,e)=>Qc(t,ta(e));function It(t){const e=[];return t.forEach(n=>{const[r,o]=n.split(\":\");e.push(`${r}:${o}`)}),e}function ho(t){const e=[];return Object.values(t).forEach(n=>{e.push(...It(n.accounts))}),e}function po(t,e){const n=[];return Object.values(t).forEach(r=>{It(r.accounts).includes(e)&&n.push(...r.methods)}),n}function go(t,e){const n=[];return Object.values(t).forEach(r=>{It(r.accounts).includes(e)&&n.push(...r.events)}),n}function ia(t,e){const n=Bo(t,e);if(n)throw new Error(n.message);const r={};for(const[o,i]of Object.entries(t))r[o]={methods:i.methods,events:i.events,chains:i.accounts.map(s=>`${s.split(\":\")[0]}:${s.split(\":\")[1]}`)};return r}function sa(t){const{proposal:{requiredNamespaces:e,optionalNamespaces:n={}},supportedNamespaces:r}=t,o=ie(e),i=ie(n),s={};Object.keys(r).forEach(u=>{const l=r[u].chains,f=r[u].methods,h=r[u].events,y=r[u].accounts;l.forEach(E=>{if(!y.some(p=>p.includes(E)))throw new Error(`No accounts provided for chain ${E} in namespace ${u}`)}),s[u]={chains:l,methods:f,events:h,accounts:y}});const c=No(e,s,\"approve()\");if(c)throw new Error(c.message);const a={};return!Object.keys(e).length&&!Object.keys(n).length?s:(Object.keys(o).forEach(u=>{const l=r[u].chains.filter(E=>{var p,d;return(d=(p=o[u])==null?void 0:p.chains)==null?void 0:d.includes(E)}),f=r[u].methods.filter(E=>{var p,d;return(d=(p=o[u])==null?void 0:p.methods)==null?void 0:d.includes(E)}),h=r[u].events.filter(E=>{var p,d;return(d=(p=o[u])==null?void 0:p.events)==null?void 0:d.includes(E)}),y=l.map(E=>r[u].accounts.filter(p=>p.includes(`${E}:`))).flat();a[u]={chains:l,methods:f,events:h,accounts:y}}),Object.keys(i).forEach(u=>{var l,f,h,y,E,p;if(!r[u])return;const d=(f=(l=i[u])==null?void 0:l.chains)==null?void 0:f.filter(N=>r[u].chains.includes(N)),v=r[u].methods.filter(N=>{var $,B;return(B=($=i[u])==null?void 0:$.methods)==null?void 0:B.includes(N)}),m=r[u].events.filter(N=>{var $,B;return(B=($=i[u])==null?void 0:$.events)==null?void 0:B.includes(N)}),O=d?.map(N=>r[u].accounts.filter($=>$.includes(`${N}:`))).flat();a[u]={chains:ot((h=a[u])==null?void 0:h.chains,d),methods:ot((y=a[u])==null?void 0:y.methods,v),events:ot((E=a[u])==null?void 0:E.events,m),accounts:ot((p=a[u])==null?void 0:p.accounts,O)}}),a)}function yn(t){return t.includes(\":\")}function yo(t){return yn(t)?t.split(\":\")[0]:t}function ie(t){var e,n,r;const o={};if(!Oe(t))return o;for(const[i,s]of Object.entries(t)){const c=yn(i)?[i]:s.chains,a=s.methods||[],u=s.events||[],l=yo(i);o[l]=oa(ra({},o[l]),{chains:ot(c,(e=o[l])==null?void 0:e.chains),methods:ot(a,(n=o[l])==null?void 0:n.methods),events:ot(u,(r=o[l])==null?void 0:r.events)})}return o}function mo(t){const e={};return t?.forEach(n=>{var r;const[o,i]=n.split(\":\");e[o]||(e[o]={accounts:[],chains:[],events:[],methods:[]}),e[o].accounts.push(n),(r=e[o].chains)==null||r.push(`${o}:${i}`)}),e}function ca(t,e){e=e.map(r=>r.replace(\"did:pkh:\",\"\"));const n=mo(e);for(const[r,o]of Object.entries(n))o.methods?o.methods=ot(o.methods,t):o.methods=t,o.events=[\"chainChanged\",\"accountsChanged\"];return n}function aa(t,e){var n,r,o,i,s,c;const a=ie(t),u=ie(e),l={},f=Object.keys(a).concat(Object.keys(u));for(const h of f)l[h]={chains:ot((n=a[h])==null?void 0:n.chains,(r=u[h])==null?void 0:r.chains),methods:ot((o=a[h])==null?void 0:o.methods,(i=u[h])==null?void 0:i.methods),events:ot((s=a[h])==null?void 0:s.events,(c=u[h])==null?void 0:c.events)};return l}const wo={INVALID_METHOD:{message:\"Invalid method.\",code:1001},INVALID_EVENT:{message:\"Invalid event.\",code:1002},INVALID_UPDATE_REQUEST:{message:\"Invalid update request.\",code:1003},INVALID_EXTEND_REQUEST:{message:\"Invalid extend request.\",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:\"Invalid session settle request.\",code:1005},UNAUTHORIZED_METHOD:{message:\"Unauthorized method.\",code:3001},UNAUTHORIZED_EVENT:{message:\"Unauthorized event.\",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:\"Unauthorized update request.\",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:\"Unauthorized extend request.\",code:3004},USER_REJECTED:{message:\"User rejected.\",code:5e3},USER_REJECTED_CHAINS:{message:\"User rejected chains.\",code:5001},USER_REJECTED_METHODS:{message:\"User rejected methods.\",code:5002},USER_REJECTED_EVENTS:{message:\"User rejected events.\",code:5003},UNSUPPORTED_CHAINS:{message:\"Unsupported chains.\",code:5100},UNSUPPORTED_METHODS:{message:\"Unsupported methods.\",code:5101},UNSUPPORTED_EVENTS:{message:\"Unsupported events.\",code:5102},UNSUPPORTED_ACCOUNTS:{message:\"Unsupported accounts.\",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:\"Unsupported namespace key.\",code:5104},USER_DISCONNECTED:{message:\"User disconnected.\",code:6e3},SESSION_SETTLEMENT_FAILED:{message:\"Session settlement failed.\",code:7e3},WC_METHOD_UNSUPPORTED:{message:\"Unsupported wc_ method.\",code:10001}},bo={NOT_INITIALIZED:{message:\"Not initialized.\",code:1},NO_MATCHING_KEY:{message:\"No matching key.\",code:2},RESTORE_WILL_OVERRIDE:{message:\"Restore will override.\",code:3},RESUBSCRIBED:{message:\"Resubscribed.\",code:4},MISSING_OR_INVALID:{message:\"Missing or invalid.\",code:5},EXPIRED:{message:\"Expired.\",code:6},UNKNOWN_TYPE:{message:\"Unknown type.\",code:7},MISMATCHED_TOPIC:{message:\"Mismatched topic.\",code:8},NON_CONFORMING_NAMESPACES:{message:\"Non conforming namespaces.\",code:9}};function ht(t,e){const{message:n,code:r}=bo[t];return{message:e?`${n} ${e}`:n,code:r}}function Nt(t,e){const{message:n,code:r}=wo[t];return{message:e?`${n} ${e}`:n,code:r}}function se(t,e){return Array.isArray(t)?typeof e<\"u\"&&t.length?t.every(e):!0:!1}function Oe(t){return Object.getPrototypeOf(t)===Object.prototype&&Object.keys(t).length}function Et(t){return typeof t>\"u\"}function nt(t,e){return e&&Et(t)?!0:typeof t==\"string\"&&!!t.trim().length}function Ae(t,e){return e&&Et(t)?!0:typeof t==\"number\"&&!isNaN(t)}function ua(t,e){const{requiredNamespaces:n}=e,r=Object.keys(t.namespaces),o=Object.keys(n);let i=!0;return gt(o,r)?(r.forEach(s=>{const{accounts:c,methods:a,events:u}=t.namespaces[s],l=It(c),f=n[s];(!gt(ue(s,f),l)||!gt(f.methods,a)||!gt(f.events,u))&&(i=!1)}),i):!1}function ce(t){return nt(t,!1)&&t.includes(\":\")?t.split(\":\").length===2:!1}function Eo(t){if(nt(t,!1)&&t.includes(\":\")){const e=t.split(\":\");if(e.length===3){const n=e[0]+\":\"+e[1];return!!e[2]&&ce(n)}}return!1}function fa(t){function e(n){try{return typeof new URL(n)<\"u\"}catch{return!1}}try{if(nt(t,!1)){if(e(t))return!0;const n=je(t);return e(n)}}catch{}return!1}function la(t){var e;return(e=t?.proposer)==null?void 0:e.publicKey}function da(t){return t?.topic}function ha(t,e){let n=null;return nt(t?.publicKey,!1)||(n=ht(\"MISSING_OR_INVALID\",`${e} controller public key should be a string`)),n}function mn(t){let e=!0;return se(t)?t.length&&(e=t.every(n=>nt(n,!1))):e=!1,e}function vo(t,e,n){let r=null;return se(e)&&e.length?e.forEach(o=>{r||ce(o)||(r=Nt(\"UNSUPPORTED_CHAINS\",`${n}, chain ${o} should be a string and conform to \"namespace:chainId\" format`))}):ce(t)||(r=Nt(\"UNSUPPORTED_CHAINS\",`${n}, chains must be defined as \"namespace:chainId\" e.g. \"eip155:1\": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: [\"eip155:1\", \"eip155:5\"] }`)),r}function xo(t,e,n){let r=null;return Object.entries(t).forEach(([o,i])=>{if(r)return;const s=vo(o,ue(o,i),`${e} ${n}`);s&&(r=s)}),r}function So(t,e){let n=null;return se(t)?t.forEach(r=>{n||Eo(r)||(n=Nt(\"UNSUPPORTED_ACCOUNTS\",`${e}, account ${r} should be a string and conform to \"namespace:chainId:address\" format`))}):n=Nt(\"UNSUPPORTED_ACCOUNTS\",`${e}, accounts should be an array of strings conforming to \"namespace:chainId:address\" format`),n}function Oo(t,e){let n=null;return Object.values(t).forEach(r=>{if(n)return;const o=So(r?.accounts,`${e} namespace`);o&&(n=o)}),n}function Ao(t,e){let n=null;return mn(t?.methods)?mn(t?.events)||(n=Nt(\"UNSUPPORTED_EVENTS\",`${e}, events should be an array of strings or empty array for no events`)):n=Nt(\"UNSUPPORTED_METHODS\",`${e}, methods should be an array of strings or empty array for no methods`),n}function wn(t,e){let n=null;return Object.values(t).forEach(r=>{if(n)return;const o=Ao(r,`${e}, namespace`);o&&(n=o)}),n}function pa(t,e,n){let r=null;if(t&&Oe(t)){const o=wn(t,e);o&&(r=o);const i=xo(t,e,n);i&&(r=i)}else r=ht(\"MISSING_OR_INVALID\",`${e}, ${n} should be an object with data`);return r}function Bo(t,e){let n=null;if(t&&Oe(t)){const r=wn(t,e);r&&(n=r);const o=Oo(t,e);o&&(n=o)}else n=ht(\"MISSING_OR_INVALID\",`${e}, namespaces should be an object with data`);return n}function Io(t){return nt(t.protocol,!0)}function ga(t,e){let n=!1;return e&&!t?n=!0:t&&se(t)&&t.length&&t.forEach(r=>{n=Io(r)}),n}function ya(t){return typeof t==\"number\"}function ma(t){return typeof t<\"u\"&&typeof t!==null}function wa(t){return!(!t||typeof t!=\"object\"||!t.code||!Ae(t.code,!1)||!t.message||!nt(t.message,!1))}function ba(t){return!(Et(t)||!nt(t.method,!1))}function Ea(t){return!(Et(t)||Et(t.result)&&Et(t.error)||!Ae(t.id,!1)||!nt(t.jsonrpc,!1))}function va(t){return!(Et(t)||!nt(t.name,!1))}function xa(t,e){return!(!ce(e)||!ho(t).includes(e))}function Sa(t,e,n){return nt(n,!1)?po(t,e).includes(n):!1}function Oa(t,e,n){return nt(n,!1)?go(t,e).includes(n):!1}function No(t,e,n){let r=null;const o=Aa(t),i=Ba(e),s=Object.keys(o),c=Object.keys(i),a=Uo(Object.keys(t)),u=Uo(Object.keys(e)),l=a.filter(f=>!u.includes(f));return l.length&&(r=ht(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces keys don't satisfy requiredNamespaces.\n Required: ${l.toString()}\n Received: ${Object.keys(e).toString()}`)),gt(s,c)||(r=ht(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces chains don't satisfy required namespaces.\n Required: ${s.toString()}\n Approved: ${c.toString()}`)),Object.keys(e).forEach(f=>{if(!f.includes(\":\")||r)return;const h=It(e[f].accounts);h.includes(f)||(r=ht(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces accounts don't satisfy namespace accounts for ${f}\n Required: ${f}\n Approved: ${h.toString()}`))}),s.forEach(f=>{r||(gt(o[f].methods,i[f].methods)?gt(o[f].events,i[f].events)||(r=ht(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces events don't satisfy namespace events for ${f}`)):r=ht(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces methods don't satisfy namespace methods for ${f}`))}),r}function Aa(t){const e={};return Object.keys(t).forEach(n=>{var r;n.includes(\":\")?e[n]=t[n]:(r=t[n].chains)==null||r.forEach(o=>{e[o]={methods:t[n].methods,events:t[n].events}})}),e}function Uo(t){return[...new Set(t.map(e=>e.includes(\":\")?e.split(\":\")[0]:e))]}function Ba(t){const e={};return Object.keys(t).forEach(n=>{if(n.includes(\":\"))e[n]=t[n];else{const r=It(t[n].accounts);r?.forEach(o=>{e[o]={accounts:t[n].accounts.filter(i=>i.includes(`${o}:`)),methods:t[n].methods,events:t[n].events}})}}),e}function Ia(t,e){return Ae(t,!1)&&t<=e.max&&t>=e.min}function Na(){const t=xt();return new Promise(e=>{switch(t){case Y.browser:e(To());break;case Y.reactNative:e(Ro());break;case Y.node:e(_o());break;default:e(!0)}})}function To(){return Tt()&&navigator?.onLine}async function Ro(){if(pt()&&typeof global<\"u\"&&global!=null&&global.NetInfo){const t=await(global==null?void 0:global.NetInfo.fetch());return t?.isConnected}return!0}function _o(){return!0}function Ua(t){switch(xt()){case Y.browser:$o(t);break;case Y.reactNative:Lo(t);break;case Y.node:break}}function $o(t){!pt()&&Tt()&&(window.addEventListener(\"online\",()=>t(!0)),window.addEventListener(\"offline\",()=>t(!1)))}function Lo(t){pt()&&typeof global<\"u\"&&global!=null&&global.NetInfo&&global?.NetInfo.addEventListener(e=>t(e?.isConnected))}function Ta(){var t;return Tt()&&Yt()?((t=Yt())==null?void 0:t.visibilityState)===\"visible\":!0}const bn={};class Ra{static get(e){return bn[e]}static set(e,n){bn[e]=n}static delete(e){delete bn[e]}}export{ln as BASE10,G as BASE16,qt as BASE64,xe as BASE64URL,Qo as COLON,Re as DEFAULT_DEPTH,fe as EMPTY_SPACE,Y as ENV_MAP,bo as INTERNAL_ERRORS,Ra as MemoryStore,ti as ONE_THOUSAND,$n as REACT_NATIVE_PRODUCT,so as RELAYER_DEFAULT_PROTOCOL,wo as SDK_ERRORS,jn as SDK_TYPE,Ln as SLASH,dn as TYPE_0,Ft as TYPE_1,re as TYPE_2,Kt as UTF8,Er as addResourceToRecap,Cn as appendToQueryString,ai as assertType,He as assignAbilityToActions,wr as base64Decode,mr as base64Encode,sa as buildApprovedNamespaces,ss as buildAuthObject,ca as buildNamespacesFromAuth,xr as buildRecapStatement,Ei as calcExpiry,pi as capitalize,qn as capitalizeWord,gi as createDelayedPromise,fs as createEncodedRecap,yi as createExpiringPromise,br as createRecap,yt as decodeRecap,Bt as decodeTypeByte,Hc as decodeTypeTwoEnvelope,Mc as decrypt,Cc as deriveSymKey,Se as deserialize,he as encodeRecap,pn as encodeTypeByte,Dc as encodeTypeTwoEnvelope,Vc as encrypt,xi as engineEvent,hi as enumify,Ji as extractSolanaTransactionId,Bn as formatAccountId,Ho as formatAccountWithChain,An as formatChainId,Kn as formatDeeplinkUrl,$e as formatExpirerTarget,wi as formatIdTarget,hr as formatMessage,ui as formatMessageContext,uo as formatRelayParams,si as formatRelayRpcUrl,Ke as formatStatementFromRecap,mi as formatTopicTarget,Mn as formatUA,Wc as formatUri,je as fromBase64,Lc as generateKeyPair,jc as generateRandomBytes32,It as getAccountsChains,Ko as getAccountsFromNamespaces,In as getAddressFromAccount,qo as getAddressesFromAccounts,ri as getAppId,Pn as getAppMetadata,To as getBrowserOnlineStatus,Nn as getChainFromAccount,Un as getChainsFromAccounts,ue as getChainsFromNamespace,Fo as getChainsFromNamespaces,hs as getChainsFromRecap,zo as getChainsFromRequiredNamespaces,Le as getCommonValuesInArrays,io as getCryptoKeyFromKeyData,pr as getDecodedRecapFromResources,Oi as getDeepLink,De as getDidAddress,de as getDidAddressSegments,lr as getDidChainId,xt as getEnvironment,ci as getHttpUrl,ht as getInternalError,Vn as getJavascriptID,kn as getJavascriptOS,Hn as getLastItems,Xc as getLinkModeURL,ds as getMethodsFromRecap,dr as getNamespacedDidChainId,ho as getNamespacesChains,go as getNamespacesEventsForChainId,mo as getNamespacesFromAccounts,po as getNamespacesMethodsForChainId,_o as getNodeOnlineStatus,yr as getReCapActions,Ro as getReactNativeOnlineStatus,us as getRecapAbilitiesFromResource,pe as getRecapFromResources,gr as getRecapResource,ii as getRelayClientMetadata,Yc as getRelayProtocolApi,Zc as getRelayProtocolName,ia as getRequiredNamespacesFromNamespaces,Nt as getSdkError,Ai as getSearchParamFromURL,Te as getUniqueValues,Si as handleDeeplinkRedirect,gt as hasOverlap,Ve as hashEthereumMessage,Pc as hashKey,kc as hashMessage,ei as isAndroid,Ta as isAppVisible,Tt as isBrowser,yn as isCaipNamespace,No as isConformingNamespaces,vi as isExpired,Zn as isIframe,ni as isIos,_e as isNode,Na as isOnline,la as isProposalStruct,pt as isReactNative,qe as isRecap,ua as isSessionCompatible,da as isSessionStruct,zn as isTelegram,Ii as isTestRun,Kc as isTypeOneEnvelope,Fc as isTypeTwoEnvelope,Et as isUndefined,Eo as isValidAccountId,So as isValidAccounts,Ao as isValidActions,se as isValidArray,ce as isValidChainId,vo as isValidChains,ha as isValidController,cr as isValidEip1271Signature,sr as isValidEip191Signature,wa as isValidErrorReason,va as isValidEvent,ya as isValidId,Oo as isValidNamespaceAccounts,wn as isValidNamespaceActions,xo as isValidNamespaceChains,mn as isValidNamespaceMethodsOrEvents,Bo as isValidNamespaces,xa as isValidNamespacesChainId,Oa as isValidNamespacesEvent,Sa as isValidNamespacesRequest,Ae as isValidNumber,Oe as isValidObject,ma as isValidParams,at as isValidRecap,Io as isValidRelay,ga as isValidRelays,ba as isValidRequest,Ia as isValidRequestExpiry,pa as isValidRequiredNamespaces,Ea as isValidResponse,nt as isValidString,fa as isValidUrl,di as mapEntries,fi as mapToObj,ot as mergeArrays,ls as mergeEncodedRecaps,vr as mergeRecaps,aa as mergeRequiredAndOptionalNamespaces,ie as normalizeNamespaces,li as objToMap,Fn as openDeeplink,Ue as parseAccountId,Ne as parseChainId,Dn as parseContextNames,bi as parseExpirerTarget,yo as parseNamespaceKey,co as parseRelayParams,ao as parseTopic,Gc as parseUri,oi as populateAppMetadata,cs as populateAuthPayload,as as recapHasResource,gn as serialize,Ni as sleep,$o as subscribeToBrowserNetworkChange,Ua as subscribeToNetworkChange,Lo as subscribeToReactNativeNetworkChange,Yn as toBase64,Bi as uuidv4,qc as validateDecoding,oo as validateEncoding,is as validateSignedCacao,zc as verifyP256Jwt,ir as verifySignature};\n//# sourceMappingURL=index.es.js.map\n","import Gi,{EventEmitter as ee}from\"events\";import{HEARTBEAT_EVENTS as te,HeartBeat as Wi}from\"@walletconnect/heartbeat\";import Hi from\"@walletconnect/keyvaluestorage\";import{generateChildLogger as N,getLoggerContext as U,pino as Yi,getDefaultLoggerOptions as et,generatePlatformLogger as Ji}from\"@walletconnect/logger\";import{IMessageTracker as Xi,IPublisher as Zi,ISubscriber as Qi,IRelayer as es,IStore as ts,IJsonRpcHistory as is,IExpirer as ss,IVerify as rs,IEchoClient as ns,IEventClient as os,ICore as as}from\"@walletconnect/types\";import{ONE_DAY as ie,SIX_HOURS as cs,THIRTY_DAYS as Ce,FIVE_SECONDS as Pe,THIRTY_SECONDS as Se,toMiliseconds as R,ONE_MINUTE as tt,ONE_SECOND as Z,FIVE_MINUTES as fe,fromMiliseconds as it}from\"@walletconnect/time\";import{safeJsonStringify as hs,safeJsonParse as st}from\"@walletconnect/safe-json\";import*as De from\"@walletconnect/relay-auth\";import{decodeJWT as rt}from\"@walletconnect/relay-auth\";import{mapToObj as Oe,objToMap as Re,getInternalError as m,generateRandomBytes32 as Ae,generateKeyPair as ls,deriveSymKey as us,hashKey as ds,validateEncoding as gs,isTypeTwoEnvelope as nt,encodeTypeTwoEnvelope as ps,isTypeOneEnvelope as ot,encrypt as ys,validateDecoding as bs,decodeTypeTwoEnvelope as ms,decrypt as fs,deserialize as at,decodeTypeByte as Ds,BASE64 as ct,BASE16 as vs,hashMessage as ve,getRelayProtocolApi as oe,getRelayProtocolName as we,isUndefined as xe,createExpiringPromise as X,getSdkError as ae,sleep as ws,isAndroid as _s,getAppId as ht,isIos as Es,isOnline as lt,calcExpiry as ce,isNode as ut,formatRelayRpcUrl as Is,subscribeToNetworkChange as Ts,isAppVisible as Cs,isProposalStruct as Ps,isSessionStruct as Ss,parseExpirerTarget as Os,TYPE_1 as Rs,formatUri as dt,parseUri as gt,createDelayedPromise as As,engineEvent as Ne,isExpired as pt,isValidParams as $e,isValidUrl as xs,isValidString as Ns,formatTopicTarget as $s,formatIdTarget as zs,isTestRun as yt,isBrowser as Ls,verifyP256Jwt as ks,uuidv4 as bt,formatUA as js,getAppMetadata as Us}from\"@walletconnect/utils\";import{toString as Fs}from\"uint8arrays\";import{JsonRpcProvider as Ms}from\"@walletconnect/jsonrpc-provider\";import{getBigIntRpcId as mt,isJsonRpcRequest as ft,isJsonRpcResponse as Dt,formatJsonRpcResult as vt,formatJsonRpcRequest as wt,formatJsonRpcError as Ks,isJsonRpcResult as Bs,isJsonRpcError as _t}from\"@walletconnect/jsonrpc-utils\";import Vs from\"@walletconnect/jsonrpc-ws-connection\";import{getDocument as qs}from\"@walletconnect/window-getters\";const ze=\"wc\",Le=2,he=\"core\",B=`${ze}@2:${he}:`,Et={name:he,logger:\"error\"},It={database:\":memory:\"},Tt=\"crypto\",ke=\"client_ed25519_seed\",Ct=ie,Pt=\"keychain\",St=\"0.3\",Ot=\"messages\",Rt=\"0.3\",je=cs,At=\"publisher\",xt=\"irn\",Nt=\"error\",Ue=\"wss://relay.walletconnect.org\",$t=\"relayer\",C={message:\"relayer_message\",message_ack:\"relayer_message_ack\",connect:\"relayer_connect\",disconnect:\"relayer_disconnect\",error:\"relayer_error\",connection_stalled:\"relayer_connection_stalled\",transport_closed:\"relayer_transport_closed\",publish:\"relayer_publish\"},zt=\"_subscription\",L={payload:\"payload\",connect:\"connect\",disconnect:\"disconnect\",error:\"error\"},Lt=.1,Gs={database:\":memory:\"},_e=\"2.21.0\",Ws=1e4,Q={link_mode:\"link_mode\",relay:\"relay\"},le={inbound:\"inbound\",outbound:\"outbound\"},kt=\"0.3\",jt=\"WALLETCONNECT_CLIENT_ID\",Fe=\"WALLETCONNECT_LINK_MODE_APPS\",$={created:\"subscription_created\",deleted:\"subscription_deleted\",expired:\"subscription_expired\",disabled:\"subscription_disabled\",sync:\"subscription_sync\",resubscribed:\"subscription_resubscribed\"},Hs=Ce,Ut=\"subscription\",Ft=\"0.3\",Ys=Pe*1e3,Mt=\"pairing\",Kt=\"0.3\",Js=Ce,se={wc_pairingDelete:{req:{ttl:ie,prompt:!1,tag:1e3},res:{ttl:ie,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:Se,prompt:!1,tag:1002},res:{ttl:Se,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:ie,prompt:!1,tag:0},res:{ttl:ie,prompt:!1,tag:0}}},re={create:\"pairing_create\",expire:\"pairing_expire\",delete:\"pairing_delete\",ping:\"pairing_ping\"},F={created:\"history_created\",updated:\"history_updated\",deleted:\"history_deleted\",sync:\"history_sync\"},Bt=\"history\",Vt=\"0.3\",qt=\"expirer\",M={created:\"expirer_created\",deleted:\"expirer_deleted\",expired:\"expirer_expired\",sync:\"expirer_sync\"},Gt=\"0.3\",Xs=ie,Wt=\"verify-api\",Zs=\"https://verify.walletconnect.com\",Ht=\"https://verify.walletconnect.org\",ue=Ht,Yt=`${ue}/v3`,Jt=[Zs,Ht],Xt=\"echo\",Zt=\"https://echo.walletconnect.com\",Qs=\"event-client\",G={pairing_started:\"pairing_started\",pairing_uri_validation_success:\"pairing_uri_validation_success\",pairing_uri_not_expired:\"pairing_uri_not_expired\",store_new_pairing:\"store_new_pairing\",subscribing_pairing_topic:\"subscribing_pairing_topic\",subscribe_pairing_topic_success:\"subscribe_pairing_topic_success\",existing_pairing:\"existing_pairing\",pairing_not_expired:\"pairing_not_expired\",emit_inactive_pairing:\"emit_inactive_pairing\",emit_session_proposal:\"emit_session_proposal\",subscribing_to_pairing_topic:\"subscribing_to_pairing_topic\"},Y={no_wss_connection:\"no_wss_connection\",no_internet_connection:\"no_internet_connection\",malformed_pairing_uri:\"malformed_pairing_uri\",active_pairing_already_exists:\"active_pairing_already_exists\",subscribe_pairing_topic_failure:\"subscribe_pairing_topic_failure\",pairing_expired:\"pairing_expired\",proposal_expired:\"proposal_expired\",proposal_listener_not_found:\"proposal_listener_not_found\"},er={session_approve_started:\"session_approve_started\",proposal_not_expired:\"proposal_not_expired\",session_namespaces_validation_success:\"session_namespaces_validation_success\",create_session_topic:\"create_session_topic\",subscribing_session_topic:\"subscribing_session_topic\",subscribe_session_topic_success:\"subscribe_session_topic_success\",publishing_session_approve:\"publishing_session_approve\",session_approve_publish_success:\"session_approve_publish_success\",store_session:\"store_session\",publishing_session_settle:\"publishing_session_settle\",session_settle_publish_success:\"session_settle_publish_success\"},tr={no_internet_connection:\"no_internet_connection\",no_wss_connection:\"no_wss_connection\",proposal_expired:\"proposal_expired\",subscribe_session_topic_failure:\"subscribe_session_topic_failure\",session_approve_publish_failure:\"session_approve_publish_failure\",session_settle_publish_failure:\"session_settle_publish_failure\",session_approve_namespace_validation_failure:\"session_approve_namespace_validation_failure\",proposal_not_found:\"proposal_not_found\"},ir={authenticated_session_approve_started:\"authenticated_session_approve_started\",authenticated_session_not_expired:\"authenticated_session_not_expired\",chains_caip2_compliant:\"chains_caip2_compliant\",chains_evm_compliant:\"chains_evm_compliant\",create_authenticated_session_topic:\"create_authenticated_session_topic\",cacaos_verified:\"cacaos_verified\",store_authenticated_session:\"store_authenticated_session\",subscribing_authenticated_session_topic:\"subscribing_authenticated_session_topic\",subscribe_authenticated_session_topic_success:\"subscribe_authenticated_session_topic_success\",publishing_authenticated_session_approve:\"publishing_authenticated_session_approve\",authenticated_session_approve_publish_success:\"authenticated_session_approve_publish_success\"},sr={no_internet_connection:\"no_internet_connection\",no_wss_connection:\"no_wss_connection\",missing_session_authenticate_request:\"missing_session_authenticate_request\",session_authenticate_request_expired:\"session_authenticate_request_expired\",chains_caip2_compliant_failure:\"chains_caip2_compliant_failure\",chains_evm_compliant_failure:\"chains_evm_compliant_failure\",invalid_cacao:\"invalid_cacao\",subscribe_authenticated_session_topic_failure:\"subscribe_authenticated_session_topic_failure\",authenticated_session_approve_publish_failure:\"authenticated_session_approve_publish_failure\",authenticated_session_pending_request_not_found:\"authenticated_session_pending_request_not_found\"},Qt=.1,ei=\"event-client\",ti=86400,ii=\"https://pulse.walletconnect.org/batch\";function rr(r,e){if(r.length>=255)throw new TypeError(\"Alphabet too long\");for(var t=new Uint8Array(256),i=0;i<t.length;i++)t[i]=255;for(var s=0;s<r.length;s++){var n=r.charAt(s),o=n.charCodeAt(0);if(t[o]!==255)throw new TypeError(n+\" is ambiguous\");t[o]=s}var a=r.length,c=r.charAt(0),h=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function d(u){if(u instanceof Uint8Array||(ArrayBuffer.isView(u)?u=new Uint8Array(u.buffer,u.byteOffset,u.byteLength):Array.isArray(u)&&(u=Uint8Array.from(u))),!(u instanceof Uint8Array))throw new TypeError(\"Expected Uint8Array\");if(u.length===0)return\"\";for(var b=0,x=0,I=0,D=u.length;I!==D&&u[I]===0;)I++,b++;for(var j=(D-I)*l+1>>>0,T=new Uint8Array(j);I!==D;){for(var q=u[I],J=0,K=j-1;(q!==0||J<x)&&K!==-1;K--,J++)q+=256*T[K]>>>0,T[K]=q%a>>>0,q=q/a>>>0;if(q!==0)throw new Error(\"Non-zero carry\");x=J,I++}for(var H=j-x;H!==j&&T[H]===0;)H++;for(var me=c.repeat(b);H<j;++H)me+=r.charAt(T[H]);return me}function g(u){if(typeof u!=\"string\")throw new TypeError(\"Expected String\");if(u.length===0)return new Uint8Array;var b=0;if(u[b]!==\" \"){for(var x=0,I=0;u[b]===c;)x++,b++;for(var D=(u.length-b)*h+1>>>0,j=new Uint8Array(D);u[b];){var T=t[u.charCodeAt(b)];if(T===255)return;for(var q=0,J=D-1;(T!==0||q<I)&&J!==-1;J--,q++)T+=a*j[J]>>>0,j[J]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error(\"Non-zero carry\");I=q,b++}if(u[b]!==\" \"){for(var K=D-I;K!==D&&j[K]===0;)K++;for(var H=new Uint8Array(x+(D-K)),me=x;K!==D;)H[me++]=j[K++];return H}}}function _(u){var b=g(u);if(b)return b;throw new Error(`Non-${e} character`)}return{encode:d,decodeUnsafe:g,decode:_}}var nr=rr,or=nr;const si=r=>{if(r instanceof Uint8Array&&r.constructor.name===\"Uint8Array\")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error(\"Unknown type, must be binary type\")},ar=r=>new TextEncoder().encode(r),cr=r=>new TextDecoder().decode(r);class hr{constructor(e,t,i){this.name=e,this.prefix=t,this.baseEncode=i}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error(\"Unknown type, must be binary type\")}}class lr{constructor(e,t,i){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error(\"Invalid prefix character\");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=i}decode(e){if(typeof e==\"string\"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error(\"Can only multibase decode strings\")}or(e){return ri(this,e)}}class ur{constructor(e){this.decoders=e}or(e){return ri(this,e)}decode(e){const t=e[0],i=this.decoders[t];if(i)return i.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const ri=(r,e)=>new ur({...r.decoders||{[r.prefix]:r},...e.decoders||{[e.prefix]:e}});class dr{constructor(e,t,i,s){this.name=e,this.prefix=t,this.baseEncode=i,this.baseDecode=s,this.encoder=new hr(e,t,i),this.decoder=new lr(e,t,s)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const Ee=({name:r,prefix:e,encode:t,decode:i})=>new dr(r,e,t,i),de=({prefix:r,name:e,alphabet:t})=>{const{encode:i,decode:s}=or(t,e);return Ee({prefix:r,name:e,encode:i,decode:n=>si(s(n))})},gr=(r,e,t,i)=>{const s={};for(let l=0;l<e.length;++l)s[e[l]]=l;let n=r.length;for(;r[n-1]===\"=\";)--n;const o=new Uint8Array(n*t/8|0);let a=0,c=0,h=0;for(let l=0;l<n;++l){const d=s[r[l]];if(d===void 0)throw new SyntaxError(`Non-${i} character`);c=c<<t|d,a+=t,a>=8&&(a-=8,o[h++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError(\"Unexpected end of data\");return o},pr=(r,e,t)=>{const i=e[e.length-1]===\"=\",s=(1<<t)-1;let n=\"\",o=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],o+=8;o>t;)o-=t,n+=e[s&a>>o];if(o&&(n+=e[s&a<<t-o]),i)for(;n.length*t&7;)n+=\"=\";return n},P=({name:r,prefix:e,bitsPerChar:t,alphabet:i})=>Ee({prefix:e,name:r,encode(s){return pr(s,i,t)},decode(s){return gr(s,i,t,r)}}),yr=Ee({prefix:\"\\0\",name:\"identity\",encode:r=>cr(r),decode:r=>ar(r)});var br=Object.freeze({__proto__:null,identity:yr});const mr=P({prefix:\"0\",name:\"base2\",alphabet:\"01\",bitsPerChar:1});var fr=Object.freeze({__proto__:null,base2:mr});const Dr=P({prefix:\"7\",name:\"base8\",alphabet:\"01234567\",bitsPerChar:3});var vr=Object.freeze({__proto__:null,base8:Dr});const wr=de({prefix:\"9\",name:\"base10\",alphabet:\"0123456789\"});var _r=Object.freeze({__proto__:null,base10:wr});const Er=P({prefix:\"f\",name:\"base16\",alphabet:\"0123456789abcdef\",bitsPerChar:4}),Ir=P({prefix:\"F\",name:\"base16upper\",alphabet:\"0123456789ABCDEF\",bitsPerChar:4});var Tr=Object.freeze({__proto__:null,base16:Er,base16upper:Ir});const Cr=P({prefix:\"b\",name:\"base32\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567\",bitsPerChar:5}),Pr=P({prefix:\"B\",name:\"base32upper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",bitsPerChar:5}),Sr=P({prefix:\"c\",name:\"base32pad\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567=\",bitsPerChar:5}),Or=P({prefix:\"C\",name:\"base32padupper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=\",bitsPerChar:5}),Rr=P({prefix:\"v\",name:\"base32hex\",alphabet:\"0123456789abcdefghijklmnopqrstuv\",bitsPerChar:5}),Ar=P({prefix:\"V\",name:\"base32hexupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV\",bitsPerChar:5}),xr=P({prefix:\"t\",name:\"base32hexpad\",alphabet:\"0123456789abcdefghijklmnopqrstuv=\",bitsPerChar:5}),Nr=P({prefix:\"T\",name:\"base32hexpadupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV=\",bitsPerChar:5}),$r=P({prefix:\"h\",name:\"base32z\",alphabet:\"ybndrfg8ejkmcpqxot1uwisza345h769\",bitsPerChar:5});var zr=Object.freeze({__proto__:null,base32:Cr,base32upper:Pr,base32pad:Sr,base32padupper:Or,base32hex:Rr,base32hexupper:Ar,base32hexpad:xr,base32hexpadupper:Nr,base32z:$r});const Lr=de({prefix:\"k\",name:\"base36\",alphabet:\"0123456789abcdefghijklmnopqrstuvwxyz\"}),kr=de({prefix:\"K\",name:\"base36upper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\"});var jr=Object.freeze({__proto__:null,base36:Lr,base36upper:kr});const Ur=de({name:\"base58btc\",prefix:\"z\",alphabet:\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\"}),Fr=de({name:\"base58flickr\",prefix:\"Z\",alphabet:\"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ\"});var Mr=Object.freeze({__proto__:null,base58btc:Ur,base58flickr:Fr});const Kr=P({prefix:\"m\",name:\"base64\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",bitsPerChar:6}),Br=P({prefix:\"M\",name:\"base64pad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",bitsPerChar:6}),Vr=P({prefix:\"u\",name:\"base64url\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\",bitsPerChar:6}),qr=P({prefix:\"U\",name:\"base64urlpad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\",bitsPerChar:6});var Gr=Object.freeze({__proto__:null,base64:Kr,base64pad:Br,base64url:Vr,base64urlpad:qr});const ni=Array.from(\"\\u{1F680}\\u{1FA90}\\u2604\\u{1F6F0}\\u{1F30C}\\u{1F311}\\u{1F312}\\u{1F313}\\u{1F314}\\u{1F315}\\u{1F316}\\u{1F317}\\u{1F318}\\u{1F30D}\\u{1F30F}\\u{1F30E}\\u{1F409}\\u2600\\u{1F4BB}\\u{1F5A5}\\u{1F4BE}\\u{1F4BF}\\u{1F602}\\u2764\\u{1F60D}\\u{1F923}\\u{1F60A}\\u{1F64F}\\u{1F495}\\u{1F62D}\\u{1F618}\\u{1F44D}\\u{1F605}\\u{1F44F}\\u{1F601}\\u{1F525}\\u{1F970}\\u{1F494}\\u{1F496}\\u{1F499}\\u{1F622}\\u{1F914}\\u{1F606}\\u{1F644}\\u{1F4AA}\\u{1F609}\\u263A\\u{1F44C}\\u{1F917}\\u{1F49C}\\u{1F614}\\u{1F60E}\\u{1F607}\\u{1F339}\\u{1F926}\\u{1F389}\\u{1F49E}\\u270C\\u2728\\u{1F937}\\u{1F631}\\u{1F60C}\\u{1F338}\\u{1F64C}\\u{1F60B}\\u{1F497}\\u{1F49A}\\u{1F60F}\\u{1F49B}\\u{1F642}\\u{1F493}\\u{1F929}\\u{1F604}\\u{1F600}\\u{1F5A4}\\u{1F603}\\u{1F4AF}\\u{1F648}\\u{1F447}\\u{1F3B6}\\u{1F612}\\u{1F92D}\\u2763\\u{1F61C}\\u{1F48B}\\u{1F440}\\u{1F62A}\\u{1F611}\\u{1F4A5}\\u{1F64B}\\u{1F61E}\\u{1F629}\\u{1F621}\\u{1F92A}\\u{1F44A}\\u{1F973}\\u{1F625}\\u{1F924}\\u{1F449}\\u{1F483}\\u{1F633}\\u270B\\u{1F61A}\\u{1F61D}\\u{1F634}\\u{1F31F}\\u{1F62C}\\u{1F643}\\u{1F340}\\u{1F337}\\u{1F63B}\\u{1F613}\\u2B50\\u2705\\u{1F97A}\\u{1F308}\\u{1F608}\\u{1F918}\\u{1F4A6}\\u2714\\u{1F623}\\u{1F3C3}\\u{1F490}\\u2639\\u{1F38A}\\u{1F498}\\u{1F620}\\u261D\\u{1F615}\\u{1F33A}\\u{1F382}\\u{1F33B}\\u{1F610}\\u{1F595}\\u{1F49D}\\u{1F64A}\\u{1F639}\\u{1F5E3}\\u{1F4AB}\\u{1F480}\\u{1F451}\\u{1F3B5}\\u{1F91E}\\u{1F61B}\\u{1F534}\\u{1F624}\\u{1F33C}\\u{1F62B}\\u26BD\\u{1F919}\\u2615\\u{1F3C6}\\u{1F92B}\\u{1F448}\\u{1F62E}\\u{1F646}\\u{1F37B}\\u{1F343}\\u{1F436}\\u{1F481}\\u{1F632}\\u{1F33F}\\u{1F9E1}\\u{1F381}\\u26A1\\u{1F31E}\\u{1F388}\\u274C\\u270A\\u{1F44B}\\u{1F630}\\u{1F928}\\u{1F636}\\u{1F91D}\\u{1F6B6}\\u{1F4B0}\\u{1F353}\\u{1F4A2}\\u{1F91F}\\u{1F641}\\u{1F6A8}\\u{1F4A8}\\u{1F92C}\\u2708\\u{1F380}\\u{1F37A}\\u{1F913}\\u{1F619}\\u{1F49F}\\u{1F331}\\u{1F616}\\u{1F476}\\u{1F974}\\u25B6\\u27A1\\u2753\\u{1F48E}\\u{1F4B8}\\u2B07\\u{1F628}\\u{1F31A}\\u{1F98B}\\u{1F637}\\u{1F57A}\\u26A0\\u{1F645}\\u{1F61F}\\u{1F635}\\u{1F44E}\\u{1F932}\\u{1F920}\\u{1F927}\\u{1F4CC}\\u{1F535}\\u{1F485}\\u{1F9D0}\\u{1F43E}\\u{1F352}\\u{1F617}\\u{1F911}\\u{1F30A}\\u{1F92F}\\u{1F437}\\u260E\\u{1F4A7}\\u{1F62F}\\u{1F486}\\u{1F446}\\u{1F3A4}\\u{1F647}\\u{1F351}\\u2744\\u{1F334}\\u{1F4A3}\\u{1F438}\\u{1F48C}\\u{1F4CD}\\u{1F940}\\u{1F922}\\u{1F445}\\u{1F4A1}\\u{1F4A9}\\u{1F450}\\u{1F4F8}\\u{1F47B}\\u{1F910}\\u{1F92E}\\u{1F3BC}\\u{1F975}\\u{1F6A9}\\u{1F34E}\\u{1F34A}\\u{1F47C}\\u{1F48D}\\u{1F4E3}\\u{1F942}\"),Wr=ni.reduce((r,e,t)=>(r[t]=e,r),[]),Hr=ni.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function Yr(r){return r.reduce((e,t)=>(e+=Wr[t],e),\"\")}function Jr(r){const e=[];for(const t of r){const i=Hr[t.codePointAt(0)];if(i===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(i)}return new Uint8Array(e)}const Xr=Ee({prefix:\"\\u{1F680}\",name:\"base256emoji\",encode:Yr,decode:Jr});var Zr=Object.freeze({__proto__:null,base256emoji:Xr}),Qr=ai,oi=128,en=127,tn=~en,sn=Math.pow(2,31);function ai(r,e,t){e=e||[],t=t||0;for(var i=t;r>=sn;)e[t++]=r&255|oi,r/=128;for(;r&tn;)e[t++]=r&255|oi,r>>>=7;return e[t]=r|0,ai.bytes=t-i+1,e}var rn=Me,nn=128,ci=127;function Me(r,i){var t=0,i=i||0,s=0,n=i,o,a=r.length;do{if(n>=a)throw Me.bytes=0,new RangeError(\"Could not decode varint\");o=r[n++],t+=s<28?(o&ci)<<s:(o&ci)*Math.pow(2,s),s+=7}while(o>=nn);return Me.bytes=n-i,t}var on=Math.pow(2,7),an=Math.pow(2,14),cn=Math.pow(2,21),hn=Math.pow(2,28),ln=Math.pow(2,35),un=Math.pow(2,42),dn=Math.pow(2,49),gn=Math.pow(2,56),pn=Math.pow(2,63),yn=function(r){return r<on?1:r<an?2:r<cn?3:r<hn?4:r<ln?5:r<un?6:r<dn?7:r<gn?8:r<pn?9:10},bn={encode:Qr,decode:rn,encodingLength:yn},hi=bn;const li=(r,e,t=0)=>(hi.encode(r,e,t),e),ui=r=>hi.encodingLength(r),Ke=(r,e)=>{const t=e.byteLength,i=ui(r),s=i+ui(t),n=new Uint8Array(s+t);return li(r,n,0),li(t,n,i),n.set(e,s),new mn(r,t,e,n)};class mn{constructor(e,t,i,s){this.code=e,this.size=t,this.digest=i,this.bytes=s}}const di=({name:r,code:e,encode:t})=>new fn(r,e,t);class fn{constructor(e,t,i){this.name=e,this.code=t,this.encode=i}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?Ke(this.code,t):t.then(i=>Ke(this.code,i))}else throw Error(\"Unknown type, must be binary type\")}}const gi=r=>async e=>new Uint8Array(await crypto.subtle.digest(r,e)),Dn=di({name:\"sha2-256\",code:18,encode:gi(\"SHA-256\")}),vn=di({name:\"sha2-512\",code:19,encode:gi(\"SHA-512\")});var wn=Object.freeze({__proto__:null,sha256:Dn,sha512:vn});const pi=0,_n=\"identity\",yi=si,En=r=>Ke(pi,yi(r)),In={code:pi,name:_n,encode:yi,digest:En};var Tn=Object.freeze({__proto__:null,identity:In});new TextEncoder,new TextDecoder;const bi={...br,...fr,...vr,..._r,...Tr,...zr,...jr,...Mr,...Gr,...Zr};({...wn,...Tn});function Cn(r=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r)}function mi(r,e,t,i){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:i}}}const fi=mi(\"utf8\",\"u\",r=>\"u\"+new TextDecoder(\"utf8\").decode(r),r=>new TextEncoder().encode(r.substring(1))),Be=mi(\"ascii\",\"a\",r=>{let e=\"a\";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);const e=Cn(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Pn={utf8:fi,\"utf-8\":fi,hex:bi.base16,latin1:Be,ascii:Be,binary:Be,...bi};function Sn(r,e=\"utf8\"){const t=Pn[e];if(!t)throw new Error(`Unsupported encoding \"${e}\"`);return(e===\"utf8\"||e===\"utf-8\")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(r,\"utf8\"):t.decoder.decode(`${t.prefix}${r}`)}var On=Object.defineProperty,Rn=(r,e,t)=>e in r?On(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,W=(r,e,t)=>Rn(r,typeof e!=\"symbol\"?e+\"\":e,t);class Di{constructor(e,t){this.core=e,this.logger=t,W(this,\"keychain\",new Map),W(this,\"name\",Pt),W(this,\"version\",St),W(this,\"initialized\",!1),W(this,\"storagePrefix\",B),W(this,\"init\",async()=>{if(!this.initialized){const i=await this.getKeyChain();typeof i<\"u\"&&(this.keychain=i),this.initialized=!0}}),W(this,\"has\",i=>(this.isInitialized(),this.keychain.has(i))),W(this,\"set\",async(i,s)=>{this.isInitialized(),this.keychain.set(i,s),await this.persist()}),W(this,\"get\",i=>{this.isInitialized();const s=this.keychain.get(i);if(typeof s>\"u\"){const{message:n}=m(\"NO_MATCHING_KEY\",`${this.name}: ${i}`);throw new Error(n)}return s}),W(this,\"del\",async i=>{this.isInitialized(),this.keychain.delete(i),await this.persist()}),this.core=e,this.logger=N(t,this.name)}get context(){return U(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,Oe(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<\"u\"?Re(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}var An=Object.defineProperty,xn=(r,e,t)=>e in r?An(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,S=(r,e,t)=>xn(r,typeof e!=\"symbol\"?e+\"\":e,t);class vi{constructor(e,t,i){this.core=e,this.logger=t,S(this,\"name\",Tt),S(this,\"keychain\"),S(this,\"randomSessionIdentifier\",Ae()),S(this,\"initialized\",!1),S(this,\"init\",async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)}),S(this,\"hasKeys\",s=>(this.isInitialized(),this.keychain.has(s))),S(this,\"getClientId\",async()=>{this.isInitialized();const s=await this.getClientSeed(),n=De.generateKeyPair(s);return De.encodeIss(n.publicKey)}),S(this,\"generateKeyPair\",()=>{this.isInitialized();const s=ls();return this.setPrivateKey(s.publicKey,s.privateKey)}),S(this,\"signJWT\",async s=>{this.isInitialized();const n=await this.getClientSeed(),o=De.generateKeyPair(n),a=this.randomSessionIdentifier,c=Ct;return await De.signJWT(a,s,c,o)}),S(this,\"generateSharedKey\",(s,n,o)=>{this.isInitialized();const a=this.getPrivateKey(s),c=us(a,n);return this.setSymKey(c,o)}),S(this,\"setSymKey\",async(s,n)=>{this.isInitialized();const o=n||ds(s);return await this.keychain.set(o,s),o}),S(this,\"deleteKeyPair\",async s=>{this.isInitialized(),await this.keychain.del(s)}),S(this,\"deleteSymKey\",async s=>{this.isInitialized(),await this.keychain.del(s)}),S(this,\"encode\",async(s,n,o)=>{this.isInitialized();const a=gs(o),c=hs(n);if(nt(a))return ps(c,o?.encoding);if(ot(a)){const g=a.senderPublicKey,_=a.receiverPublicKey;s=await this.generateSharedKey(g,_)}const h=this.getSymKey(s),{type:l,senderPublicKey:d}=a;return ys({type:l,symKey:h,message:c,senderPublicKey:d,encoding:o?.encoding})}),S(this,\"decode\",async(s,n,o)=>{this.isInitialized();const a=bs(n,o);if(nt(a)){const c=ms(n,o?.encoding);return st(c)}if(ot(a)){const c=a.receiverPublicKey,h=a.senderPublicKey;s=await this.generateSharedKey(c,h)}try{const c=this.getSymKey(s),h=fs({symKey:c,encoded:n,encoding:o?.encoding});return st(h)}catch(c){this.logger.error(`Failed to decode message from topic: '${s}', clientId: '${await this.getClientId()}'`),this.logger.error(c)}}),S(this,\"getPayloadType\",(s,n=ct)=>{const o=at({encoded:s,encoding:n});return Ds(o.type)}),S(this,\"getPayloadSenderPublicKey\",(s,n=ct)=>{const o=at({encoded:s,encoding:n});return o.senderPublicKey?Fs(o.senderPublicKey,vs):void 0}),this.core=e,this.logger=N(t,this.name),this.keychain=i||new Di(this.core,this.logger)}get context(){return U(this.logger)}async setPrivateKey(e,t){return await this.keychain.set(e,t),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e=\"\";try{e=this.keychain.get(ke)}catch{e=Ae(),await this.keychain.set(ke,e)}return Sn(e,\"base16\")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}var Nn=Object.defineProperty,$n=Object.defineProperties,zn=Object.getOwnPropertyDescriptors,wi=Object.getOwnPropertySymbols,Ln=Object.prototype.hasOwnProperty,kn=Object.prototype.propertyIsEnumerable,Ve=(r,e,t)=>e in r?Nn(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,jn=(r,e)=>{for(var t in e||(e={}))Ln.call(e,t)&&Ve(r,t,e[t]);if(wi)for(var t of wi(e))kn.call(e,t)&&Ve(r,t,e[t]);return r},Un=(r,e)=>$n(r,zn(e)),k=(r,e,t)=>Ve(r,typeof e!=\"symbol\"?e+\"\":e,t);class _i extends Xi{constructor(e,t){super(e,t),this.logger=e,this.core=t,k(this,\"messages\",new Map),k(this,\"messagesWithoutClientAck\",new Map),k(this,\"name\",Ot),k(this,\"version\",Rt),k(this,\"initialized\",!1),k(this,\"storagePrefix\",B),k(this,\"init\",async()=>{if(!this.initialized){this.logger.trace(\"Initialized\");try{const i=await this.getRelayerMessages();typeof i<\"u\"&&(this.messages=i);const s=await this.getRelayerMessagesWithoutClientAck();typeof s<\"u\"&&(this.messagesWithoutClientAck=s),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",size:this.messages.size})}catch(i){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(i)}finally{this.initialized=!0}}}),k(this,\"set\",async(i,s,n)=>{this.isInitialized();const o=ve(s);let a=this.messages.get(i);if(typeof a>\"u\"&&(a={}),typeof a[o]<\"u\")return o;if(a[o]=s,this.messages.set(i,a),n===le.inbound){const c=this.messagesWithoutClientAck.get(i)||{};this.messagesWithoutClientAck.set(i,Un(jn({},c),{[o]:s}))}return await this.persist(),o}),k(this,\"get\",i=>{this.isInitialized();let s=this.messages.get(i);return typeof s>\"u\"&&(s={}),s}),k(this,\"getWithoutAck\",i=>{this.isInitialized();const s={};for(const n of i){const o=this.messagesWithoutClientAck.get(n)||{};s[n]=Object.values(o)}return s}),k(this,\"has\",(i,s)=>{this.isInitialized();const n=this.get(i),o=ve(s);return typeof n[o]<\"u\"}),k(this,\"ack\",async(i,s)=>{this.isInitialized();const n=this.messagesWithoutClientAck.get(i);if(typeof n>\"u\")return;const o=ve(s);delete n[o],Object.keys(n).length===0?this.messagesWithoutClientAck.delete(i):this.messagesWithoutClientAck.set(i,n),await this.persist()}),k(this,\"del\",async i=>{this.isInitialized(),this.messages.delete(i),this.messagesWithoutClientAck.delete(i),await this.persist()}),this.logger=N(e,this.name),this.core=t}get context(){return U(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get storageKeyWithoutClientAck(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name+\"_withoutClientAck\"}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,Oe(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,Oe(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<\"u\"?Re(e):void 0}async getRelayerMessagesWithoutClientAck(){const e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return typeof e<\"u\"?Re(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}var Fn=Object.defineProperty,Mn=Object.defineProperties,Kn=Object.getOwnPropertyDescriptors,Ei=Object.getOwnPropertySymbols,Bn=Object.prototype.hasOwnProperty,Vn=Object.prototype.propertyIsEnumerable,qe=(r,e,t)=>e in r?Fn(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ie=(r,e)=>{for(var t in e||(e={}))Bn.call(e,t)&&qe(r,t,e[t]);if(Ei)for(var t of Ei(e))Vn.call(e,t)&&qe(r,t,e[t]);return r},Ge=(r,e)=>Mn(r,Kn(e)),V=(r,e,t)=>qe(r,typeof e!=\"symbol\"?e+\"\":e,t);class qn extends Zi{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,V(this,\"events\",new ee),V(this,\"name\",At),V(this,\"queue\",new Map),V(this,\"publishTimeout\",R(tt)),V(this,\"initialPublishTimeout\",R(Z*15)),V(this,\"needsTransportRestart\",!1),V(this,\"publish\",async(i,s,n)=>{var o;this.logger.debug(\"Publishing Payload\"),this.logger.trace({type:\"method\",method:\"publish\",params:{topic:i,message:s,opts:n}});const a=n?.ttl||je,c=we(n),h=n?.prompt||!1,l=n?.tag||0,d=n?.id||mt().toString(),g={topic:i,message:s,opts:{ttl:a,relay:c,prompt:h,tag:l,id:d,attestation:n?.attestation,tvf:n?.tvf}},_=`Failed to publish payload, please try again. id:${d} tag:${l}`;try{const u=new Promise(async b=>{const x=({id:D})=>{g.opts.id===D&&(this.removeRequestFromQueue(D),this.relayer.events.removeListener(C.publish,x),b(g))};this.relayer.events.on(C.publish,x);const I=X(new Promise((D,j)=>{this.rpcPublish({topic:i,message:s,ttl:a,prompt:h,tag:l,id:d,attestation:n?.attestation,tvf:n?.tvf}).then(D).catch(T=>{this.logger.warn(T,T?.message),j(T)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${d} tag:${l}`);try{await I,this.events.removeListener(C.publish,x)}catch(D){this.queue.set(d,Ge(Ie({},g),{attempt:1})),this.logger.warn(D,D?.message)}});this.logger.trace({type:\"method\",method:\"publish\",params:{id:d,topic:i,message:s,opts:n}}),await X(u,this.publishTimeout,_)}catch(u){if(this.logger.debug(\"Failed to Publish Payload\"),this.logger.error(u),(o=n?.internal)!=null&&o.throwOnFailedPublish)throw u}finally{this.queue.delete(d)}}),V(this,\"on\",(i,s)=>{this.events.on(i,s)}),V(this,\"once\",(i,s)=>{this.events.once(i,s)}),V(this,\"off\",(i,s)=>{this.events.off(i,s)}),V(this,\"removeListener\",(i,s)=>{this.events.removeListener(i,s)}),this.relayer=e,this.logger=N(t,this.name),this.registerEventListeners()}get context(){return U(this.logger)}async rpcPublish(e){var t,i,s,n;const{topic:o,message:a,ttl:c=je,prompt:h,tag:l,id:d,attestation:g,tvf:_}=e,u={method:oe(we().protocol).publish,params:Ie({topic:o,message:a,ttl:c,prompt:h,tag:l,attestation:g},_),id:d};xe((t=u.params)==null?void 0:t.prompt)&&((i=u.params)==null||delete i.prompt),xe((s=u.params)==null?void 0:s.tag)&&((n=u.params)==null||delete n.tag),this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"message\",direction:\"outgoing\",request:u});const b=await this.relayer.request(u);return this.relayer.events.emit(C.publish,e),this.logger.debug(\"Successfully Published Payload\"),b}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,t)=>{const i=e.attempt+1;this.queue.set(t,Ge(Ie({},e),{attempt:i}));const{topic:s,message:n,opts:o,attestation:a}=e;this.logger.warn({},`Publisher: queue->publishing: ${e.opts.id}, tag: ${e.opts.tag}, attempt: ${i}`),await this.rpcPublish(Ge(Ie({},e),{topic:s,message:n,ttl:o.ttl,prompt:o.prompt,tag:o.tag,id:o.id,attestation:a,tvf:o.tvf})),this.logger.warn({},`Publisher: queue->published: ${e.opts.id}`)})}registerEventListeners(){this.relayer.core.heartbeat.on(te.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(C.connection_stalled);return}this.checkQueue()}),this.relayer.on(C.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}}var Gn=Object.defineProperty,Wn=(r,e,t)=>e in r?Gn(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ne=(r,e,t)=>Wn(r,typeof e!=\"symbol\"?e+\"\":e,t);class Hn{constructor(){ne(this,\"map\",new Map),ne(this,\"set\",(e,t)=>{const i=this.get(e);this.exists(e,t)||this.map.set(e,[...i,t])}),ne(this,\"get\",e=>this.map.get(e)||[]),ne(this,\"exists\",(e,t)=>this.get(e).includes(t)),ne(this,\"delete\",(e,t)=>{if(typeof t>\"u\"){this.map.delete(e);return}if(!this.map.has(e))return;const i=this.get(e);if(!this.exists(e,t))return;const s=i.filter(n=>n!==t);if(!s.length){this.map.delete(e);return}this.map.set(e,s)}),ne(this,\"clear\",()=>{this.map.clear()})}get topics(){return Array.from(this.map.keys())}}var Yn=Object.defineProperty,Jn=Object.defineProperties,Xn=Object.getOwnPropertyDescriptors,Ii=Object.getOwnPropertySymbols,Zn=Object.prototype.hasOwnProperty,Qn=Object.prototype.propertyIsEnumerable,We=(r,e,t)=>e in r?Yn(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ge=(r,e)=>{for(var t in e||(e={}))Zn.call(e,t)&&We(r,t,e[t]);if(Ii)for(var t of Ii(e))Qn.call(e,t)&&We(r,t,e[t]);return r},He=(r,e)=>Jn(r,Xn(e)),f=(r,e,t)=>We(r,typeof e!=\"symbol\"?e+\"\":e,t);class Ti extends Qi{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,f(this,\"subscriptions\",new Map),f(this,\"topicMap\",new Hn),f(this,\"events\",new ee),f(this,\"name\",Ut),f(this,\"version\",Ft),f(this,\"pending\",new Map),f(this,\"cached\",[]),f(this,\"initialized\",!1),f(this,\"storagePrefix\",B),f(this,\"subscribeTimeout\",R(tt)),f(this,\"initialSubscribeTimeout\",R(Z*15)),f(this,\"clientId\"),f(this,\"batchSubscribeTopicsLimit\",500),f(this,\"init\",async()=>{this.initialized||(this.logger.trace(\"Initialized\"),this.registerEventListeners(),await this.restore()),this.initialized=!0}),f(this,\"subscribe\",async(i,s)=>{this.isInitialized(),this.logger.debug(\"Subscribing Topic\"),this.logger.trace({type:\"method\",method:\"subscribe\",params:{topic:i,opts:s}});try{const n=we(s),o={topic:i,relay:n,transportType:s?.transportType};this.pending.set(i,o);const a=await this.rpcSubscribe(i,n,s);return typeof a==\"string\"&&(this.onSubscribe(a,o),this.logger.debug(\"Successfully Subscribed Topic\"),this.logger.trace({type:\"method\",method:\"subscribe\",params:{topic:i,opts:s}})),a}catch(n){throw this.logger.debug(\"Failed to Subscribe Topic\"),this.logger.error(n),n}}),f(this,\"unsubscribe\",async(i,s)=>{this.isInitialized(),typeof s?.id<\"u\"?await this.unsubscribeById(i,s.id,s):await this.unsubscribeByTopic(i,s)}),f(this,\"isSubscribed\",i=>new Promise(s=>{s(this.topicMap.topics.includes(i))})),f(this,\"isKnownTopic\",i=>new Promise(s=>{s(this.topicMap.topics.includes(i)||this.pending.has(i)||this.cached.some(n=>n.topic===i))})),f(this,\"on\",(i,s)=>{this.events.on(i,s)}),f(this,\"once\",(i,s)=>{this.events.once(i,s)}),f(this,\"off\",(i,s)=>{this.events.off(i,s)}),f(this,\"removeListener\",(i,s)=>{this.events.removeListener(i,s)}),f(this,\"start\",async()=>{await this.onConnect()}),f(this,\"stop\",async()=>{await this.onDisconnect()}),f(this,\"restart\",async()=>{await this.restore(),await this.onRestart()}),f(this,\"checkPending\",async()=>{if(this.pending.size===0&&(!this.initialized||!this.relayer.connected))return;const i=[];this.pending.forEach(s=>{i.push(s)}),await this.batchSubscribe(i)}),f(this,\"registerEventListeners\",()=>{this.relayer.core.heartbeat.on(te.pulse,async()=>{await this.checkPending()}),this.events.on($.created,async i=>{const s=$.created;this.logger.info(`Emitting ${s}`),this.logger.debug({type:\"event\",event:s,data:i}),await this.persist()}),this.events.on($.deleted,async i=>{const s=$.deleted;this.logger.info(`Emitting ${s}`),this.logger.debug({type:\"event\",event:s,data:i}),await this.persist()})}),this.relayer=e,this.logger=N(t,this.name),this.clientId=\"\"}get context(){return U(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+\"//\"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}get hasAnyTopics(){return this.topicMap.topics.length>0||this.pending.size>0||this.cached.length>0||this.subscriptions.size>0}hasSubscription(e,t){let i=!1;try{i=this.getSubscription(e).topic===t}catch{}return i}reset(){this.cached=[],this.initialized=!0}onDisable(){this.values.length>0&&(this.cached=this.values),this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){const i=this.topicMap.get(e);await Promise.all(i.map(async s=>await this.unsubscribeById(e,s,t)))}async unsubscribeById(e,t,i){this.logger.debug(\"Unsubscribing Topic\"),this.logger.trace({type:\"method\",method:\"unsubscribe\",params:{topic:e,id:t,opts:i}});try{const s=we(i);await this.restartToComplete({topic:e,id:t,relay:s}),await this.rpcUnsubscribe(e,t,s);const n=ae(\"USER_DISCONNECTED\",`${this.name}, ${e}`);await this.onUnsubscribe(e,t,n),this.logger.debug(\"Successfully Unsubscribed Topic\"),this.logger.trace({type:\"method\",method:\"unsubscribe\",params:{topic:e,id:t,opts:i}})}catch(s){throw this.logger.debug(\"Failed to Unsubscribe Topic\"),this.logger.error(s),s}}async rpcSubscribe(e,t,i){var s;(!i||i?.transportType===Q.relay)&&await this.restartToComplete({topic:e,id:e,relay:t});const n={method:oe(t.protocol).subscribe,params:{topic:e}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:n});const o=(s=i?.internal)==null?void 0:s.throwOnFailedPublish;try{const a=await this.getSubscriptionId(e);if(i?.transportType===Q.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(n).catch(l=>this.logger.warn(l))},R(Z)),a;const c=new Promise(async l=>{const d=g=>{g.topic===e&&(this.events.removeListener($.created,d),l(g.id))};this.events.on($.created,d);try{const g=await X(new Promise((_,u)=>{this.relayer.request(n).catch(b=>{this.logger.warn(b,b?.message),u(b)}).then(_)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener($.created,d),l(g)}catch{}}),h=await X(c,this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!h&&o)throw new Error(`Subscribing to ${e} failed, please try again`);return h?a:null}catch(a){if(this.logger.debug(\"Outgoing Relay Subscribe Payload stalled\"),this.relayer.events.emit(C.connection_stalled),o)throw a}return null}async rpcBatchSubscribe(e){if(!e.length)return;const t=e[0].relay,i={method:oe(t.protocol).batchSubscribe,params:{topics:e.map(s=>s.topic)}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:i});try{await await X(new Promise(s=>{this.relayer.request(i).catch(n=>this.logger.warn(n)).then(s)}),this.subscribeTimeout,\"rpcBatchSubscribe failed, please try again\")}catch{this.relayer.events.emit(C.connection_stalled)}}async rpcBatchFetchMessages(e){if(!e.length)return;const t=e[0].relay,i={method:oe(t.protocol).batchFetchMessages,params:{topics:e.map(n=>n.topic)}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:i});let s;try{s=await await X(new Promise((n,o)=>{this.relayer.request(i).catch(a=>{this.logger.warn(a),o(a)}).then(n)}),this.subscribeTimeout,\"rpcBatchFetchMessages failed, please try again\")}catch{this.relayer.events.emit(C.connection_stalled)}return s}rpcUnsubscribe(e,t,i){const s={method:oe(i.protocol).unsubscribe,params:{topic:e,id:t}};return this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:s}),this.relayer.request(s)}onSubscribe(e,t){this.setSubscription(e,He(ge({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(t=>{this.setSubscription(t.id,ge({},t)),this.pending.delete(t.topic)})}async onUnsubscribe(e,t,i){this.events.removeAllListeners(t),this.hasSubscription(t,e)&&this.deleteSubscription(t,i),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,t){this.logger.debug(\"Setting subscription\"),this.logger.trace({type:\"method\",method:\"setSubscription\",id:e,subscription:t}),this.addSubscription(e,t)}addSubscription(e,t){this.subscriptions.set(e,ge({},t)),this.topicMap.set(t.topic,e),this.events.emit($.created,t)}getSubscription(e){this.logger.debug(\"Getting subscription\"),this.logger.trace({type:\"method\",method:\"getSubscription\",id:e});const t=this.subscriptions.get(e);if(!t){const{message:i}=m(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw new Error(i)}return t}deleteSubscription(e,t){this.logger.debug(\"Deleting subscription\"),this.logger.trace({type:\"method\",method:\"deleteSubscription\",id:e,reason:t});const i=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(i.topic,e),this.events.emit($.deleted,He(ge({},i),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit($.sync)}async onRestart(){if(this.cached.length){const e=[...this.cached],t=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let i=0;i<t;i++){const s=e.splice(0,this.batchSubscribeTopicsLimit);await this.batchSubscribe(s)}}this.events.emit($.resubscribed)}async restore(){try{const e=await this.getRelayerSubscriptions();if(typeof e>\"u\"||!e.length)return;if(this.subscriptions.size){const{message:t}=m(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){e.length&&(await this.rpcBatchSubscribe(e),this.onBatchSubscribe(await Promise.all(e.map(async t=>He(ge({},t),{id:await this.getSubscriptionId(t.topic)})))))}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);const t=await this.rpcBatchFetchMessages(e);t&&t.messages&&(await ws(R(Z)),await this.relayer.handleBatchMessageEvents(t.messages))}async onConnect(){await this.restart(),this.reset()}onDisconnect(){this.onDisable()}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}async restartToComplete(e){!this.relayer.connected&&!this.relayer.connecting&&(this.cached.push(e),await this.relayer.transportOpen())}async getClientId(){return this.clientId||(this.clientId=await this.relayer.core.crypto.getClientId()),this.clientId}async getSubscriptionId(e){return ve(e+await this.getClientId())}}var eo=Object.defineProperty,Ci=Object.getOwnPropertySymbols,to=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable,Ye=(r,e,t)=>e in r?eo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Pi=(r,e)=>{for(var t in e||(e={}))to.call(e,t)&&Ye(r,t,e[t]);if(Ci)for(var t of Ci(e))io.call(e,t)&&Ye(r,t,e[t]);return r},y=(r,e,t)=>Ye(r,typeof e!=\"symbol\"?e+\"\":e,t);class Si extends es{constructor(e){super(e),y(this,\"protocol\",\"wc\"),y(this,\"version\",2),y(this,\"core\"),y(this,\"logger\"),y(this,\"events\",new ee),y(this,\"provider\"),y(this,\"messages\"),y(this,\"subscriber\"),y(this,\"publisher\"),y(this,\"name\",$t),y(this,\"transportExplicitlyClosed\",!1),y(this,\"initialized\",!1),y(this,\"connectionAttemptInProgress\",!1),y(this,\"relayUrl\"),y(this,\"projectId\"),y(this,\"packageName\"),y(this,\"bundleId\"),y(this,\"hasExperiencedNetworkDisruption\",!1),y(this,\"pingTimeout\"),y(this,\"heartBeatTimeout\",R(Se+Pe)),y(this,\"reconnectTimeout\"),y(this,\"connectPromise\"),y(this,\"reconnectInProgress\",!1),y(this,\"requestsInFlight\",[]),y(this,\"connectTimeout\",R(Z*15)),y(this,\"request\",async t=>{var i,s;this.logger.debug(\"Publishing Request Payload\");const n=t.id||mt().toString();await this.toEstablishConnection();try{this.logger.trace({id:n,method:t.method,topic:(i=t.params)==null?void 0:i.topic},\"relayer.request - publishing...\");const o=`${n}:${((s=t.params)==null?void 0:s.tag)||\"\"}`;this.requestsInFlight.push(o);const a=await this.provider.request(t);return this.requestsInFlight=this.requestsInFlight.filter(c=>c!==o),a}catch(o){throw this.logger.debug(`Failed to Publish Request: ${n}`),o}}),y(this,\"resetPingTimeout\",()=>{ut()&&(clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{var t,i,s,n;try{this.logger.debug({},\"pingTimeout: Connection stalled, terminating...\"),(n=(s=(i=(t=this.provider)==null?void 0:t.connection)==null?void 0:i.socket)==null?void 0:s.terminate)==null||n.call(s)}catch(o){this.logger.warn(o,o?.message)}},this.heartBeatTimeout))}),y(this,\"onPayloadHandler\",t=>{this.onProviderPayload(t),this.resetPingTimeout()}),y(this,\"onConnectHandler\",()=>{this.logger.warn({},\"Relayer connected \\u{1F6DC}\"),this.startPingTimeout(),this.events.emit(C.connect)}),y(this,\"onDisconnectHandler\",()=>{this.logger.warn({},\"Relayer disconnected \\u{1F6D1}\"),this.requestsInFlight=[],this.onProviderDisconnect()}),y(this,\"onProviderErrorHandler\",t=>{this.logger.fatal(`Fatal socket error: ${t.message}`),this.events.emit(C.error,t),this.logger.fatal(\"Fatal socket error received, closing transport\"),this.transportClose()}),y(this,\"registerProviderListeners\",()=>{this.provider.on(L.payload,this.onPayloadHandler),this.provider.on(L.connect,this.onConnectHandler),this.provider.on(L.disconnect,this.onDisconnectHandler),this.provider.on(L.error,this.onProviderErrorHandler)}),this.core=e.core,this.logger=typeof e.logger<\"u\"&&typeof e.logger!=\"string\"?N(e.logger,this.name):Yi(et({level:e.logger||Nt})),this.messages=new _i(this.logger,e.core),this.subscriber=new Ti(this,this.logger),this.publisher=new qn(this,this.logger),this.relayUrl=e?.relayUrl||Ue,this.projectId=e.projectId,_s()?this.packageName=ht():Es()&&(this.bundleId=ht()),this.provider={}}async init(){if(this.logger.trace(\"Initialized\"),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.subscriber.hasAnyTopics)try{await this.transportOpen()}catch(e){this.logger.warn(e,e?.message)}}get context(){return U(this.logger)}get connected(){var e,t,i;return((i=(t=(e=this.provider)==null?void 0:e.connection)==null?void 0:t.socket)==null?void 0:i.readyState)===1||!1}get connecting(){var e,t,i;return((i=(t=(e=this.provider)==null?void 0:e.connection)==null?void 0:t.socket)==null?void 0:i.readyState)===0||this.connectPromise!==void 0||!1}async publish(e,t,i){this.isInitialized(),await this.publisher.publish(e,t,i),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now(),transportType:Q.relay},le.outbound)}async subscribe(e,t){var i,s,n;this.isInitialized(),(!(t!=null&&t.transportType)||t?.transportType===\"relay\")&&await this.toEstablishConnection();const o=typeof((i=t?.internal)==null?void 0:i.throwOnFailedPublish)>\"u\"?!0:(s=t?.internal)==null?void 0:s.throwOnFailedPublish;let a=((n=this.subscriber.topicMap.get(e))==null?void 0:n[0])||\"\",c;const h=l=>{l.topic===e&&(this.subscriber.off($.created,h),c())};return await Promise.all([new Promise(l=>{c=l,this.subscriber.on($.created,h)}),new Promise(async(l,d)=>{a=await this.subscriber.subscribe(e,Pi({internal:{throwOnFailedPublish:o}},t)).catch(g=>{o&&d(g)})||a,l()})]),a}async unsubscribe(e,t){this.isInitialized(),await this.subscriber.unsubscribe(e,t)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async transportDisconnect(){this.provider.disconnect&&(this.hasExperiencedNetworkDisruption||this.connected)?await X(this.provider.disconnect(),2e3,\"provider.disconnect()\").catch(()=>this.onProviderDisconnect()):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,await this.transportDisconnect()}async transportOpen(e){if(!this.subscriber.hasAnyTopics){this.logger.warn(\"Starting WS connection skipped because the client has no topics to work with.\");return}if(this.connectPromise?(this.logger.debug({},\"Waiting for existing connection attempt to resolve...\"),await this.connectPromise,this.logger.debug({},\"Existing connection attempt resolved\")):(this.connectPromise=new Promise(async(t,i)=>{await this.connect(e).then(t).catch(i).finally(()=>{this.connectPromise=void 0})}),await this.connectPromise),!this.connected)throw new Error(`Couldn't establish socket connection to the relay server: ${this.relayUrl}`)}async restartTransport(e){this.logger.debug({},\"Restarting transport...\"),!this.connectionAttemptInProgress&&(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.transportClose(),await this.transportOpen())}async confirmOnlineStateOrThrow(){if(!await lt())throw new Error(\"No internet connection detected. Please restart your network and try again.\")}async handleBatchMessageEvents(e){if(e?.length===0){this.logger.trace(\"Batch message events is empty. Ignoring...\");return}const t=e.sort((i,s)=>i.publishedAt-s.publishedAt);this.logger.debug(`Batch of ${t.length} message events sorted`);for(const i of t)try{await this.onMessageEvent(i)}catch(s){this.logger.warn(s,\"Error while processing batch message event: \"+s?.message)}this.logger.trace(`Batch of ${t.length} message events processed`)}async onLinkMessageEvent(e,t){const{topic:i}=e;if(!t.sessionExists){const s=ce(fe),n={topic:i,expiry:s,relay:{protocol:\"irn\"},active:!1};await this.core.pairing.pairings.set(i,n)}this.events.emit(C.message,e),await this.recordMessageEvent(e,le.inbound)}async connect(e){await this.confirmOnlineStateOrThrow(),e&&e!==this.relayUrl&&(this.relayUrl=e,await this.transportDisconnect()),this.connectionAttemptInProgress=!0,this.transportExplicitlyClosed=!1;let t=1;for(;t<6;){try{if(this.transportExplicitlyClosed)break;this.logger.debug({},`Connecting to ${this.relayUrl}, attempt: ${t}...`),await this.createProvider(),await new Promise(async(i,s)=>{const n=()=>{s(new Error(\"Connection interrupted while trying to subscribe\"))};this.provider.once(L.disconnect,n),await X(new Promise((o,a)=>{this.provider.connect().then(o).catch(a)}),this.connectTimeout,`Socket stalled when trying to connect to ${this.relayUrl}`).catch(o=>{s(o)}).finally(()=>{this.provider.off(L.disconnect,n),clearTimeout(this.reconnectTimeout)}),await new Promise(async(o,a)=>{const c=()=>{a(new Error(\"Connection interrupted while trying to subscribe\"))};this.provider.once(L.disconnect,c),await this.subscriber.start().then(o).catch(a).finally(()=>{this.provider.off(L.disconnect,c)})}),this.hasExperiencedNetworkDisruption=!1,i()})}catch(i){await this.subscriber.stop();const s=i;this.logger.warn({},s.message),this.hasExperiencedNetworkDisruption=!0}finally{this.connectionAttemptInProgress=!1}if(this.connected){this.logger.debug({},`Connected to ${this.relayUrl} successfully on attempt: ${t}`);break}await new Promise(i=>setTimeout(i,R(t*1))),t++}}startPingTimeout(){var e,t,i,s,n;if(ut())try{(t=(e=this.provider)==null?void 0:e.connection)!=null&&t.socket&&((n=(s=(i=this.provider)==null?void 0:i.connection)==null?void 0:s.socket)==null||n.on(\"ping\",()=>{this.resetPingTimeout()})),this.resetPingTimeout()}catch(o){this.logger.warn(o,o?.message)}}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();const e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new Ms(new Vs(Is({sdkVersion:_e,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0,bundleId:this.bundleId,packageName:this.packageName}))),this.registerProviderListeners()}async recordMessageEvent(e,t){const{topic:i,message:s}=e;await this.messages.set(i,s,t)}async shouldIgnoreMessageEvent(e){const{topic:t,message:i}=e;if(!i||i.length===0)return this.logger.warn(`Ignoring invalid/empty message: ${i}`),!0;if(!await this.subscriber.isKnownTopic(t))return this.logger.warn(`Ignoring message for unknown topic ${t}`),!0;const s=this.messages.has(t,i);return s&&this.logger.warn(`Ignoring duplicate message: ${i}`),s}async onProviderPayload(e){if(this.logger.debug(\"Incoming Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"incoming\",payload:e}),ft(e)){if(!e.method.endsWith(zt))return;const t=e.params,{topic:i,message:s,publishedAt:n,attestation:o}=t.data,a={topic:i,message:s,publishedAt:n,transportType:Q.relay,attestation:o};this.logger.debug(\"Emitting Relayer Payload\"),this.logger.trace(Pi({type:\"event\",event:t.id},a)),this.events.emit(t.id,a),await this.acknowledgePayload(e),await this.onMessageEvent(a)}else Dt(e)&&this.events.emit(C.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,le.inbound),this.events.emit(C.message,e))}async acknowledgePayload(e){const t=vt(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(L.payload,this.onPayloadHandler),this.provider.off(L.connect,this.onConnectHandler),this.provider.off(L.disconnect,this.onDisconnectHandler),this.provider.off(L.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await lt();Ts(async t=>{e!==t&&(e=t,t?await this.transportOpen().catch(i=>this.logger.error(i,i?.message)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))}),this.core.heartbeat.on(te.pulse,async()=>{if(!this.transportExplicitlyClosed&&!this.connected&&Cs())try{await this.confirmOnlineStateOrThrow(),await this.transportOpen()}catch(t){this.logger.warn(t,t?.message)}})}async onProviderDisconnect(){clearTimeout(this.pingTimeout),this.events.emit(C.disconnect),this.connectionAttemptInProgress=!1,!this.reconnectInProgress&&(this.reconnectInProgress=!0,await this.subscriber.stop(),this.subscriber.hasAnyTopics&&(this.transportExplicitlyClosed||(this.reconnectTimeout=setTimeout(async()=>{await this.transportOpen().catch(e=>this.logger.error(e,e?.message)),this.reconnectTimeout=void 0,this.reconnectInProgress=!1},R(Lt)))))}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}async toEstablishConnection(){if(await this.confirmOnlineStateOrThrow(),!this.connected){if(this.connectPromise){await this.connectPromise;return}await this.connect()}}}function so(){}function Oi(r){if(!r||typeof r!=\"object\")return!1;const e=Object.getPrototypeOf(r);return e===null||e===Object.prototype||Object.getPrototypeOf(e)===null?Object.prototype.toString.call(r)===\"[object Object]\":!1}function Ri(r){return Object.getOwnPropertySymbols(r).filter(e=>Object.prototype.propertyIsEnumerable.call(r,e))}function Ai(r){return r==null?r===void 0?\"[object Undefined]\":\"[object Null]\":Object.prototype.toString.call(r)}const ro=\"[object RegExp]\",no=\"[object String]\",oo=\"[object Number]\",ao=\"[object Boolean]\",xi=\"[object Arguments]\",co=\"[object Symbol]\",ho=\"[object Date]\",lo=\"[object Map]\",uo=\"[object Set]\",go=\"[object Array]\",po=\"[object Function]\",yo=\"[object ArrayBuffer]\",Je=\"[object Object]\",bo=\"[object Error]\",mo=\"[object DataView]\",fo=\"[object Uint8Array]\",Do=\"[object Uint8ClampedArray]\",vo=\"[object Uint16Array]\",wo=\"[object Uint32Array]\",_o=\"[object BigUint64Array]\",Eo=\"[object Int8Array]\",Io=\"[object Int16Array]\",To=\"[object Int32Array]\",Co=\"[object BigInt64Array]\",Po=\"[object Float32Array]\",So=\"[object Float64Array]\";function Oo(r,e){return r===e||Number.isNaN(r)&&Number.isNaN(e)}function Ro(r,e,t){return pe(r,e,void 0,void 0,void 0,void 0,t)}function pe(r,e,t,i,s,n,o){const a=o(r,e,t,i,s,n);if(a!==void 0)return a;if(typeof r==typeof e)switch(typeof r){case\"bigint\":case\"string\":case\"boolean\":case\"symbol\":case\"undefined\":return r===e;case\"number\":return r===e||Object.is(r,e);case\"function\":return r===e;case\"object\":return ye(r,e,n,o)}return ye(r,e,n,o)}function ye(r,e,t,i){if(Object.is(r,e))return!0;let s=Ai(r),n=Ai(e);if(s===xi&&(s=Je),n===xi&&(n=Je),s!==n)return!1;switch(s){case no:return r.toString()===e.toString();case oo:{const c=r.valueOf(),h=e.valueOf();return Oo(c,h)}case ao:case ho:case co:return Object.is(r.valueOf(),e.valueOf());case ro:return r.source===e.source&&r.flags===e.flags;case po:return r===e}t=t??new Map;const o=t.get(r),a=t.get(e);if(o!=null&&a!=null)return o===e;t.set(r,e),t.set(e,r);try{switch(s){case lo:{if(r.size!==e.size)return!1;for(const[c,h]of r.entries())if(!e.has(c)||!pe(h,e.get(c),c,r,e,t,i))return!1;return!0}case uo:{if(r.size!==e.size)return!1;const c=Array.from(r.values()),h=Array.from(e.values());for(let l=0;l<c.length;l++){const d=c[l],g=h.findIndex(_=>pe(d,_,void 0,r,e,t,i));if(g===-1)return!1;h.splice(g,1)}return!0}case go:case fo:case Do:case vo:case wo:case _o:case Eo:case Io:case To:case Co:case Po:case So:{if(typeof Buffer<\"u\"&&Buffer.isBuffer(r)!==Buffer.isBuffer(e)||r.length!==e.length)return!1;for(let c=0;c<r.length;c++)if(!pe(r[c],e[c],c,r,e,t,i))return!1;return!0}case yo:return r.byteLength!==e.byteLength?!1:ye(new Uint8Array(r),new Uint8Array(e),t,i);case mo:return r.byteLength!==e.byteLength||r.byteOffset!==e.byteOffset?!1:ye(new Uint8Array(r),new Uint8Array(e),t,i);case bo:return r.name===e.name&&r.message===e.message;case Je:{if(!(ye(r.constructor,e.constructor,t,i)||Oi(r)&&Oi(e)))return!1;const h=[...Object.keys(r),...Ri(r)],l=[...Object.keys(e),...Ri(e)];if(h.length!==l.length)return!1;for(let d=0;d<h.length;d++){const g=h[d],_=r[g];if(!Object.hasOwn(e,g))return!1;const u=e[g];if(!pe(_,u,g,r,e,t,i))return!1}return!0}default:return!1}}finally{t.delete(r),t.delete(e)}}function Ao(r,e){return Ro(r,e,so)}var xo=Object.defineProperty,Ni=Object.getOwnPropertySymbols,No=Object.prototype.hasOwnProperty,$o=Object.prototype.propertyIsEnumerable,Xe=(r,e,t)=>e in r?xo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,$i=(r,e)=>{for(var t in e||(e={}))No.call(e,t)&&Xe(r,t,e[t]);if(Ni)for(var t of Ni(e))$o.call(e,t)&&Xe(r,t,e[t]);return r},z=(r,e,t)=>Xe(r,typeof e!=\"symbol\"?e+\"\":e,t);class zi extends ts{constructor(e,t,i,s=B,n=void 0){super(e,t,i,s),this.core=e,this.logger=t,this.name=i,z(this,\"map\",new Map),z(this,\"version\",kt),z(this,\"cached\",[]),z(this,\"initialized\",!1),z(this,\"getKey\"),z(this,\"storagePrefix\",B),z(this,\"recentlyDeleted\",[]),z(this,\"recentlyDeletedLimit\",200),z(this,\"init\",async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(o=>{this.getKey&&o!==null&&!xe(o)?this.map.set(this.getKey(o),o):Ps(o)?this.map.set(o.id,o):Ss(o)&&this.map.set(o.topic,o)}),this.cached=[],this.initialized=!0)}),z(this,\"set\",async(o,a)=>{this.isInitialized(),this.map.has(o)?await this.update(o,a):(this.logger.debug(\"Setting value\"),this.logger.trace({type:\"method\",method:\"set\",key:o,value:a}),this.map.set(o,a),await this.persist())}),z(this,\"get\",o=>(this.isInitialized(),this.logger.debug(\"Getting value\"),this.logger.trace({type:\"method\",method:\"get\",key:o}),this.getData(o))),z(this,\"getAll\",o=>(this.isInitialized(),o?this.values.filter(a=>Object.keys(o).every(c=>Ao(a[c],o[c]))):this.values)),z(this,\"update\",async(o,a)=>{this.isInitialized(),this.logger.debug(\"Updating value\"),this.logger.trace({type:\"method\",method:\"update\",key:o,update:a});const c=$i($i({},this.getData(o)),a);this.map.set(o,c),await this.persist()}),z(this,\"delete\",async(o,a)=>{this.isInitialized(),this.map.has(o)&&(this.logger.debug(\"Deleting value\"),this.logger.trace({type:\"method\",method:\"delete\",key:o,reason:a}),this.map.delete(o),this.addToRecentlyDeleted(o),await this.persist())}),this.logger=N(t,this.name),this.storagePrefix=s,this.getKey=n}get context(){return U(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(e){this.recentlyDeleted.push(e),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){const t=this.map.get(e);if(!t){if(this.recentlyDeleted.includes(e)){const{message:s}=m(\"MISSING_OR_INVALID\",`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(s),new Error(s)}const{message:i}=m(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw this.logger.error(i),new Error(i)}return t}async persist(){await this.setDataStore(this.values)}async restore(){try{const e=await this.getDataStore();if(typeof e>\"u\"||!e.length)return;if(this.map.size){const{message:t}=m(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}var zo=Object.defineProperty,Lo=(r,e,t)=>e in r?zo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,p=(r,e,t)=>Lo(r,typeof e!=\"symbol\"?e+\"\":e,t);class Li{constructor(e,t){this.core=e,this.logger=t,p(this,\"name\",Mt),p(this,\"version\",Kt),p(this,\"events\",new Gi),p(this,\"pairings\"),p(this,\"initialized\",!1),p(this,\"storagePrefix\",B),p(this,\"ignoredPayloadTypes\",[Rs]),p(this,\"registeredMethods\",[]),p(this,\"init\",async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace(\"Initialized\"))}),p(this,\"register\",({methods:i})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...i])]}),p(this,\"create\",async i=>{this.isInitialized();const s=Ae(),n=await this.core.crypto.setSymKey(s),o=ce(fe),a={protocol:xt},c={topic:n,expiry:o,relay:a,active:!1,methods:i?.methods},h=dt({protocol:this.core.protocol,version:this.core.version,topic:n,symKey:s,relay:a,expiryTimestamp:o,methods:i?.methods});return this.events.emit(re.create,c),this.core.expirer.set(n,o),await this.pairings.set(n,c),await this.core.relayer.subscribe(n,{transportType:i?.transportType}),{topic:n,uri:h}}),p(this,\"pair\",async i=>{this.isInitialized();const s=this.core.eventClient.createEvent({properties:{topic:i?.uri,trace:[G.pairing_started]}});this.isValidPair(i,s);const{topic:n,symKey:o,relay:a,expiryTimestamp:c,methods:h}=gt(i.uri);s.props.properties.topic=n,s.addTrace(G.pairing_uri_validation_success),s.addTrace(G.pairing_uri_not_expired);let l;if(this.pairings.keys.includes(n)){if(l=this.pairings.get(n),s.addTrace(G.existing_pairing),l.active)throw s.setError(Y.active_pairing_already_exists),new Error(`Pairing already exists: ${n}. Please try again with a new connection URI.`);s.addTrace(G.pairing_not_expired)}const d=c||ce(fe),g={topic:n,relay:a,expiry:d,active:!1,methods:h};this.core.expirer.set(n,d),await this.pairings.set(n,g),s.addTrace(G.store_new_pairing),i.activatePairing&&await this.activate({topic:n}),this.events.emit(re.create,g),s.addTrace(G.emit_inactive_pairing),this.core.crypto.keychain.has(n)||await this.core.crypto.setSymKey(o,n),s.addTrace(G.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{s.setError(Y.no_internet_connection)}try{await this.core.relayer.subscribe(n,{relay:a})}catch(_){throw s.setError(Y.subscribe_pairing_topic_failure),_}return s.addTrace(G.subscribe_pairing_topic_success),g}),p(this,\"activate\",async({topic:i})=>{this.isInitialized();const s=ce(fe);this.core.expirer.set(i,s),await this.pairings.update(i,{active:!0,expiry:s})}),p(this,\"ping\",async i=>{this.isInitialized(),await this.isValidPing(i),this.logger.warn(\"ping() is deprecated and will be removed in the next major release.\");const{topic:s}=i;if(this.pairings.keys.includes(s)){const n=await this.sendRequest(s,\"wc_pairingPing\",{}),{done:o,resolve:a,reject:c}=As();this.events.once(Ne(\"pairing_ping\",n),({error:h})=>{h?c(h):a()}),await o()}}),p(this,\"updateExpiry\",async({topic:i,expiry:s})=>{this.isInitialized(),await this.pairings.update(i,{expiry:s})}),p(this,\"updateMetadata\",async({topic:i,metadata:s})=>{this.isInitialized(),await this.pairings.update(i,{peerMetadata:s})}),p(this,\"getPairings\",()=>(this.isInitialized(),this.pairings.values)),p(this,\"disconnect\",async i=>{this.isInitialized(),await this.isValidDisconnect(i);const{topic:s}=i;this.pairings.keys.includes(s)&&(await this.sendRequest(s,\"wc_pairingDelete\",ae(\"USER_DISCONNECTED\")),await this.deletePairing(s))}),p(this,\"formatUriFromPairing\",i=>{this.isInitialized();const{topic:s,relay:n,expiry:o,methods:a}=i,c=this.core.crypto.keychain.get(s);return dt({protocol:this.core.protocol,version:this.core.version,topic:s,symKey:c,relay:n,expiryTimestamp:o,methods:a})}),p(this,\"sendRequest\",async(i,s,n)=>{const o=wt(s,n),a=await this.core.crypto.encode(i,o),c=se[s].req;return this.core.history.set(i,o),this.core.relayer.publish(i,a,c),o.id}),p(this,\"sendResult\",async(i,s,n)=>{const o=vt(i,n),a=await this.core.crypto.encode(s,o),c=(await this.core.history.get(s,i)).request.method,h=se[c].res;await this.core.relayer.publish(s,a,h),await this.core.history.resolve(o)}),p(this,\"sendError\",async(i,s,n)=>{const o=Ks(i,n),a=await this.core.crypto.encode(s,o),c=(await this.core.history.get(s,i)).request.method,h=se[c]?se[c].res:se.unregistered_method.res;await this.core.relayer.publish(s,a,h),await this.core.history.resolve(o)}),p(this,\"deletePairing\",async(i,s)=>{await this.core.relayer.unsubscribe(i),await Promise.all([this.pairings.delete(i,ae(\"USER_DISCONNECTED\")),this.core.crypto.deleteSymKey(i),s?Promise.resolve():this.core.expirer.del(i)])}),p(this,\"cleanup\",async()=>{const i=this.pairings.getAll().filter(s=>pt(s.expiry));await Promise.all(i.map(s=>this.deletePairing(s.topic)))}),p(this,\"onRelayEventRequest\",async i=>{const{topic:s,payload:n}=i;switch(n.method){case\"wc_pairingPing\":return await this.onPairingPingRequest(s,n);case\"wc_pairingDelete\":return await this.onPairingDeleteRequest(s,n);default:return await this.onUnknownRpcMethodRequest(s,n)}}),p(this,\"onRelayEventResponse\",async i=>{const{topic:s,payload:n}=i,o=(await this.core.history.get(s,n.id)).request.method;switch(o){case\"wc_pairingPing\":return this.onPairingPingResponse(s,n);default:return this.onUnknownRpcMethodResponse(o)}}),p(this,\"onPairingPingRequest\",async(i,s)=>{const{id:n}=s;try{this.isValidPing({topic:i}),await this.sendResult(n,i,!0),this.events.emit(re.ping,{id:n,topic:i})}catch(o){await this.sendError(n,i,o),this.logger.error(o)}}),p(this,\"onPairingPingResponse\",(i,s)=>{const{id:n}=s;setTimeout(()=>{Bs(s)?this.events.emit(Ne(\"pairing_ping\",n),{}):_t(s)&&this.events.emit(Ne(\"pairing_ping\",n),{error:s.error})},500)}),p(this,\"onPairingDeleteRequest\",async(i,s)=>{const{id:n}=s;try{this.isValidDisconnect({topic:i}),await this.deletePairing(i),this.events.emit(re.delete,{id:n,topic:i})}catch(o){await this.sendError(n,i,o),this.logger.error(o)}}),p(this,\"onUnknownRpcMethodRequest\",async(i,s)=>{const{id:n,method:o}=s;try{if(this.registeredMethods.includes(o))return;const a=ae(\"WC_METHOD_UNSUPPORTED\",o);await this.sendError(n,i,a),this.logger.error(a)}catch(a){await this.sendError(n,i,a),this.logger.error(a)}}),p(this,\"onUnknownRpcMethodResponse\",i=>{this.registeredMethods.includes(i)||this.logger.error(ae(\"WC_METHOD_UNSUPPORTED\",i))}),p(this,\"isValidPair\",(i,s)=>{var n;if(!$e(i)){const{message:a}=m(\"MISSING_OR_INVALID\",`pair() params: ${i}`);throw s.setError(Y.malformed_pairing_uri),new Error(a)}if(!xs(i.uri)){const{message:a}=m(\"MISSING_OR_INVALID\",`pair() uri: ${i.uri}`);throw s.setError(Y.malformed_pairing_uri),new Error(a)}const o=gt(i?.uri);if(!((n=o?.relay)!=null&&n.protocol)){const{message:a}=m(\"MISSING_OR_INVALID\",\"pair() uri#relay-protocol\");throw s.setError(Y.malformed_pairing_uri),new Error(a)}if(!(o!=null&&o.symKey)){const{message:a}=m(\"MISSING_OR_INVALID\",\"pair() uri#symKey\");throw s.setError(Y.malformed_pairing_uri),new Error(a)}if(o!=null&&o.expiryTimestamp&&R(o?.expiryTimestamp)<Date.now()){s.setError(Y.pairing_expired);const{message:a}=m(\"EXPIRED\",\"pair() URI has expired. Please try again with a new connection URI.\");throw new Error(a)}}),p(this,\"isValidPing\",async i=>{if(!$e(i)){const{message:n}=m(\"MISSING_OR_INVALID\",`ping() params: ${i}`);throw new Error(n)}const{topic:s}=i;await this.isValidPairingTopic(s)}),p(this,\"isValidDisconnect\",async i=>{if(!$e(i)){const{message:n}=m(\"MISSING_OR_INVALID\",`disconnect() params: ${i}`);throw new Error(n)}const{topic:s}=i;await this.isValidPairingTopic(s)}),p(this,\"isValidPairingTopic\",async i=>{if(!Ns(i,!1)){const{message:s}=m(\"MISSING_OR_INVALID\",`pairing topic should be a string: ${i}`);throw new Error(s)}if(!this.pairings.keys.includes(i)){const{message:s}=m(\"NO_MATCHING_KEY\",`pairing topic doesn't exist: ${i}`);throw new Error(s)}if(pt(this.pairings.get(i).expiry)){await this.deletePairing(i);const{message:s}=m(\"EXPIRED\",`pairing topic: ${i}`);throw new Error(s)}}),this.core=e,this.logger=N(t,this.name),this.pairings=new zi(this.core,this.logger,this.name,this.storagePrefix)}get context(){return U(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(C.message,async e=>{const{topic:t,message:i,transportType:s}=e;if(this.pairings.keys.includes(t)&&s!==Q.link_mode&&!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(i)))try{const n=await this.core.crypto.decode(t,i);ft(n)?(this.core.history.set(t,n),await this.onRelayEventRequest({topic:t,payload:n})):Dt(n)&&(await this.core.history.resolve(n),await this.onRelayEventResponse({topic:t,payload:n}),this.core.history.delete(t,n.id)),await this.core.relayer.messages.ack(t,i)}catch(n){this.logger.error(n)}})}registerExpirerEvents(){this.core.expirer.on(M.expired,async e=>{const{topic:t}=Os(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit(re.expire,{topic:t}))})}}var ko=Object.defineProperty,jo=(r,e,t)=>e in r?ko(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,O=(r,e,t)=>jo(r,typeof e!=\"symbol\"?e+\"\":e,t);class ki extends is{constructor(e,t){super(e,t),this.core=e,this.logger=t,O(this,\"records\",new Map),O(this,\"events\",new ee),O(this,\"name\",Bt),O(this,\"version\",Vt),O(this,\"cached\",[]),O(this,\"initialized\",!1),O(this,\"storagePrefix\",B),O(this,\"init\",async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(i=>this.records.set(i.id,i)),this.cached=[],this.registerEventListeners(),this.initialized=!0)}),O(this,\"set\",(i,s,n)=>{if(this.isInitialized(),this.logger.debug(\"Setting JSON-RPC request history record\"),this.logger.trace({type:\"method\",method:\"set\",topic:i,request:s,chainId:n}),this.records.has(s.id))return;const o={id:s.id,topic:i,request:{method:s.method,params:s.params||null},chainId:n,expiry:ce(Ce)};this.records.set(o.id,o),this.persist(),this.events.emit(F.created,o)}),O(this,\"resolve\",async i=>{if(this.isInitialized(),this.logger.debug(\"Updating JSON-RPC response history record\"),this.logger.trace({type:\"method\",method:\"update\",response:i}),!this.records.has(i.id))return;const s=await this.getRecord(i.id);typeof s.response>\"u\"&&(s.response=_t(i)?{error:i.error}:{result:i.result},this.records.set(s.id,s),this.persist(),this.events.emit(F.updated,s))}),O(this,\"get\",async(i,s)=>(this.isInitialized(),this.logger.debug(\"Getting record\"),this.logger.trace({type:\"method\",method:\"get\",topic:i,id:s}),await this.getRecord(s))),O(this,\"delete\",(i,s)=>{this.isInitialized(),this.logger.debug(\"Deleting record\"),this.logger.trace({type:\"method\",method:\"delete\",id:s}),this.values.forEach(n=>{if(n.topic===i){if(typeof s<\"u\"&&n.id!==s)return;this.records.delete(n.id),this.events.emit(F.deleted,n)}}),this.persist()}),O(this,\"exists\",async(i,s)=>(this.isInitialized(),this.records.has(s)?(await this.getRecord(s)).topic===i:!1)),O(this,\"on\",(i,s)=>{this.events.on(i,s)}),O(this,\"once\",(i,s)=>{this.events.once(i,s)}),O(this,\"off\",(i,s)=>{this.events.off(i,s)}),O(this,\"removeListener\",(i,s)=>{this.events.removeListener(i,s)}),this.logger=N(t,this.name)}get context(){return U(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const e=[];return this.values.forEach(t=>{if(typeof t.response<\"u\")return;const i={topic:t.topic,request:wt(t.request.method,t.request.params,t.id),chainId:t.chainId};return e.push(i)}),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();const t=this.records.get(e);if(!t){const{message:i}=m(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw new Error(i)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(F.sync)}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>\"u\"||!e.length)return;if(this.records.size){const{message:t}=m(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(F.created,e=>{const t=F.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,record:e})}),this.events.on(F.updated,e=>{const t=F.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,record:e})}),this.events.on(F.deleted,e=>{const t=F.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,record:e})}),this.core.heartbeat.on(te.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(t=>{R(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(F.deleted,t,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}var Uo=Object.defineProperty,Fo=(r,e,t)=>e in r?Uo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,A=(r,e,t)=>Fo(r,typeof e!=\"symbol\"?e+\"\":e,t);class ji extends ss{constructor(e,t){super(e,t),this.core=e,this.logger=t,A(this,\"expirations\",new Map),A(this,\"events\",new ee),A(this,\"name\",qt),A(this,\"version\",Gt),A(this,\"cached\",[]),A(this,\"initialized\",!1),A(this,\"storagePrefix\",B),A(this,\"init\",async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(i=>this.expirations.set(i.target,i)),this.cached=[],this.registerEventListeners(),this.initialized=!0)}),A(this,\"has\",i=>{try{const s=this.formatTarget(i);return typeof this.getExpiration(s)<\"u\"}catch{return!1}}),A(this,\"set\",(i,s)=>{this.isInitialized();const n=this.formatTarget(i),o={target:n,expiry:s};this.expirations.set(n,o),this.checkExpiry(n,o),this.events.emit(M.created,{target:n,expiration:o})}),A(this,\"get\",i=>{this.isInitialized();const s=this.formatTarget(i);return this.getExpiration(s)}),A(this,\"del\",i=>{if(this.isInitialized(),this.has(i)){const s=this.formatTarget(i),n=this.getExpiration(s);this.expirations.delete(s),this.events.emit(M.deleted,{target:s,expiration:n})}}),A(this,\"on\",(i,s)=>{this.events.on(i,s)}),A(this,\"once\",(i,s)=>{this.events.once(i,s)}),A(this,\"off\",(i,s)=>{this.events.off(i,s)}),A(this,\"removeListener\",(i,s)=>{this.events.removeListener(i,s)}),this.logger=N(t,this.name)}get context(){return U(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if(typeof e==\"string\")return $s(e);if(typeof e==\"number\")return zs(e);const{message:t}=m(\"UNKNOWN_TYPE\",`Target type: ${typeof e}`);throw new Error(t)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit(M.sync)}async restore(){try{const e=await this.getExpirations();if(typeof e>\"u\"||!e.length)return;if(this.expirations.size){const{message:t}=m(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){const t=this.expirations.get(e);if(!t){const{message:i}=m(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw this.logger.warn(i),new Error(i)}return t}checkExpiry(e,t){const{expiry:i}=t;R(i)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(M.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(te.pulse,()=>this.checkExpirations()),this.events.on(M.created,e=>{const t=M.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),this.persist()}),this.events.on(M.expired,e=>{const t=M.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),this.persist()}),this.events.on(M.deleted,e=>{const t=M.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=m(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}var Mo=Object.defineProperty,Ko=(r,e,t)=>e in r?Mo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,w=(r,e,t)=>Ko(r,typeof e!=\"symbol\"?e+\"\":e,t);class Ui extends rs{constructor(e,t,i){super(e,t,i),this.core=e,this.logger=t,this.store=i,w(this,\"name\",Wt),w(this,\"abortController\"),w(this,\"isDevEnv\"),w(this,\"verifyUrlV3\",Yt),w(this,\"storagePrefix\",B),w(this,\"version\",Le),w(this,\"publicKey\"),w(this,\"fetchPromise\"),w(this,\"init\",async()=>{var s;this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&R((s=this.publicKey)==null?void 0:s.expiresAt)<Date.now()&&(this.logger.debug(\"verify v2 public key expired\"),await this.removePublicKey()))}),w(this,\"register\",async s=>{if(!Ls()||this.isDevEnv)return;const n=window.location.origin,{id:o,decryptedId:a}=s,c=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${n}&id=${o}&decryptedId=${a}`;try{const h=qs(),l=this.startAbortTimer(Z*5),d=await new Promise((g,_)=>{const u=()=>{window.removeEventListener(\"message\",x),h.body.removeChild(b),_(\"attestation aborted\")};this.abortController.signal.addEventListener(\"abort\",u);const b=h.createElement(\"iframe\");b.src=c,b.style.display=\"none\",b.addEventListener(\"error\",u,{signal:this.abortController.signal});const x=I=>{if(I.data&&typeof I.data==\"string\")try{const D=JSON.parse(I.data);if(D.type===\"verify_attestation\"){if(rt(D.attestation).payload.id!==o)return;clearInterval(l),h.body.removeChild(b),this.abortController.signal.removeEventListener(\"abort\",u),window.removeEventListener(\"message\",x),g(D.attestation===null?\"\":D.attestation)}}catch(D){this.logger.warn(D)}};h.body.appendChild(b),window.addEventListener(\"message\",x,{signal:this.abortController.signal})});return this.logger.debug(\"jwt attestation\",d),d}catch(h){this.logger.warn(h)}return\"\"}),w(this,\"resolve\",async s=>{if(this.isDevEnv)return\"\";const{attestationId:n,hash:o,encryptedId:a}=s;if(n===\"\"){this.logger.debug(\"resolve: attestationId is empty, skipping\");return}if(n){if(rt(n).payload.id!==a)return;const h=await this.isValidJwtAttestation(n);if(h){if(!h.isVerified){this.logger.warn(\"resolve: jwt attestation: origin url not verified\");return}return h}}if(!o)return;const c=this.getVerifyUrl(s?.verifyUrl);return this.fetchAttestation(o,c)}),w(this,\"fetchAttestation\",async(s,n)=>{this.logger.debug(`resolving attestation: ${s} from url: ${n}`);const o=this.startAbortTimer(Z*5),a=await fetch(`${n}/attestation/${s}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(o),a.status===200?await a.json():void 0}),w(this,\"getVerifyUrl\",s=>{let n=s||ue;return Jt.includes(n)||(this.logger.info(`verify url: ${n}, not included in trusted list, assigning default: ${ue}`),n=ue),n}),w(this,\"fetchPublicKey\",async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);const s=this.startAbortTimer(Pe),n=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(s),await n.json()}catch(s){this.logger.warn(s)}}),w(this,\"persistPublicKey\",async s=>{this.logger.debug(\"persisting public key to local storage\",s),await this.store.setItem(this.storeKey,s),this.publicKey=s}),w(this,\"removePublicKey\",async()=>{this.logger.debug(\"removing verify v2 public key from storage\"),await this.store.removeItem(this.storeKey),this.publicKey=void 0}),w(this,\"isValidJwtAttestation\",async s=>{const n=await this.getPublicKey();try{if(n)return this.validateAttestation(s,n)}catch(a){this.logger.error(a),this.logger.warn(\"error validating attestation\")}const o=await this.fetchAndPersistPublicKey();try{if(o)return this.validateAttestation(s,o)}catch(a){this.logger.error(a),this.logger.warn(\"error validating attestation\")}}),w(this,\"getPublicKey\",async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey()),w(this,\"fetchAndPersistPublicKey\",async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async n=>{const o=await this.fetchPublicKey();o&&(await this.persistPublicKey(o),n(o))});const s=await this.fetchPromise;return this.fetchPromise=void 0,s}),w(this,\"validateAttestation\",(s,n)=>{const o=ks(s,n.publicKey),a={hasExpired:R(o.exp)<Date.now(),payload:o};if(a.hasExpired)throw this.logger.warn(\"resolve: jwt attestation expired\"),new Error(\"JWT attestation expired\");return{origin:a.payload.origin,isScam:a.payload.isScam,isVerified:a.payload.isVerified}}),this.logger=N(t,this.name),this.abortController=new AbortController,this.isDevEnv=yt(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//verify:public:key\"}get context(){return U(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),R(e))}}var Bo=Object.defineProperty,Vo=(r,e,t)=>e in r?Bo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Fi=(r,e,t)=>Vo(r,typeof e!=\"symbol\"?e+\"\":e,t);class Mi extends ns{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,Fi(this,\"context\",Xt),Fi(this,\"registerDeviceToken\",async i=>{const{clientId:s,token:n,notificationType:o,enableEncrypted:a=!1}=i,c=`${Zt}/${this.projectId}/clients`;await fetch(c,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({client_id:s,type:o,token:n,always_raw:a})})}),this.logger=N(t,this.context)}}var qo=Object.defineProperty,Ki=Object.getOwnPropertySymbols,Go=Object.prototype.hasOwnProperty,Wo=Object.prototype.propertyIsEnumerable,Ze=(r,e,t)=>e in r?qo(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,be=(r,e)=>{for(var t in e||(e={}))Go.call(e,t)&&Ze(r,t,e[t]);if(Ki)for(var t of Ki(e))Wo.call(e,t)&&Ze(r,t,e[t]);return r},E=(r,e,t)=>Ze(r,typeof e!=\"symbol\"?e+\"\":e,t);class Bi extends os{constructor(e,t,i=!0){super(e,t,i),this.core=e,this.logger=t,E(this,\"context\",ei),E(this,\"storagePrefix\",B),E(this,\"storageVersion\",Qt),E(this,\"events\",new Map),E(this,\"shouldPersist\",!1),E(this,\"init\",async()=>{if(!yt())try{const s={eventId:bt(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:\"INIT\",type:\"\",properties:{client_id:await this.core.crypto.getClientId(),user_agent:js(this.core.relayer.protocol,this.core.relayer.version,_e)}}};await this.sendEvent([s])}catch(s){this.logger.warn(s)}}),E(this,\"createEvent\",s=>{const{event:n=\"ERROR\",type:o=\"\",properties:{topic:a,trace:c}}=s,h=bt(),l=this.core.projectId||\"\",d=Date.now(),g=be({eventId:h,timestamp:d,props:{event:n,type:o,properties:{topic:a,trace:c}},bundleId:l,domain:this.getAppDomain()},this.setMethods(h));return this.telemetryEnabled&&(this.events.set(h,g),this.shouldPersist=!0),g}),E(this,\"getEvent\",s=>{const{eventId:n,topic:o}=s;if(n)return this.events.get(n);const a=Array.from(this.events.values()).find(c=>c.props.properties.topic===o);if(a)return be(be({},a),this.setMethods(a.eventId))}),E(this,\"deleteEvent\",s=>{const{eventId:n}=s;this.events.delete(n),this.shouldPersist=!0}),E(this,\"setEventListeners\",()=>{this.core.heartbeat.on(te.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(s=>{it(Date.now())-it(s.timestamp)>ti&&(this.events.delete(s.eventId),this.shouldPersist=!0)})})}),E(this,\"setMethods\",s=>({addTrace:n=>this.addTrace(s,n),setError:n=>this.setError(s,n)})),E(this,\"addTrace\",(s,n)=>{const o=this.events.get(s);o&&(o.props.properties.trace.push(n),this.events.set(s,o),this.shouldPersist=!0)}),E(this,\"setError\",(s,n)=>{const o=this.events.get(s);o&&(o.props.type=n,o.timestamp=Date.now(),this.events.set(s,o),this.shouldPersist=!0)}),E(this,\"persist\",async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1}),E(this,\"restore\",async()=>{try{const s=await this.core.storage.getItem(this.storageKey)||[];if(!s.length)return;s.forEach(n=>{this.events.set(n.eventId,be(be({},n),this.setMethods(n.eventId)))})}catch(s){this.logger.warn(s)}}),E(this,\"submit\",async()=>{if(!this.telemetryEnabled||this.events.size===0)return;const s=[];for(const[n,o]of this.events)o.props.type&&s.push(o);if(s.length!==0)try{if((await this.sendEvent(s)).ok)for(const n of s)this.events.delete(n.eventId),this.shouldPersist=!0}catch(n){this.logger.warn(n)}}),E(this,\"sendEvent\",async s=>{const n=this.getAppDomain()?\"\":\"&sp=desktop\";return await fetch(`${ii}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${_e}${n}`,{method:\"POST\",body:JSON.stringify(s)})}),E(this,\"getAppDomain\",()=>Us().url),this.logger=N(t,this.context),this.telemetryEnabled=i,i?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+\"//\"+this.context}}var Ho=Object.defineProperty,Vi=Object.getOwnPropertySymbols,Yo=Object.prototype.hasOwnProperty,Jo=Object.prototype.propertyIsEnumerable,Qe=(r,e,t)=>e in r?Ho(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,qi=(r,e)=>{for(var t in e||(e={}))Yo.call(e,t)&&Qe(r,t,e[t]);if(Vi)for(var t of Vi(e))Jo.call(e,t)&&Qe(r,t,e[t]);return r},v=(r,e,t)=>Qe(r,typeof e!=\"symbol\"?e+\"\":e,t);class Te extends as{constructor(e){var t;super(e),v(this,\"protocol\",ze),v(this,\"version\",Le),v(this,\"name\",he),v(this,\"relayUrl\"),v(this,\"projectId\"),v(this,\"customStoragePrefix\"),v(this,\"events\",new ee),v(this,\"logger\"),v(this,\"heartbeat\"),v(this,\"relayer\"),v(this,\"crypto\"),v(this,\"storage\"),v(this,\"history\"),v(this,\"expirer\"),v(this,\"pairing\"),v(this,\"verify\"),v(this,\"echoClient\"),v(this,\"linkModeSupportedApps\"),v(this,\"eventClient\"),v(this,\"initialized\",!1),v(this,\"logChunkController\"),v(this,\"on\",(a,c)=>this.events.on(a,c)),v(this,\"once\",(a,c)=>this.events.once(a,c)),v(this,\"off\",(a,c)=>this.events.off(a,c)),v(this,\"removeListener\",(a,c)=>this.events.removeListener(a,c)),v(this,\"dispatchEnvelope\",({topic:a,message:c,sessionExists:h})=>{if(!a||!c)return;const l={topic:a,message:c,publishedAt:Date.now(),transportType:Q.link_mode};this.relayer.onLinkMessageEvent(l,{sessionExists:h})});const i=this.getGlobalCore(e?.customStoragePrefix);if(i)try{return this.customStoragePrefix=i.customStoragePrefix,this.logger=i.logger,this.heartbeat=i.heartbeat,this.crypto=i.crypto,this.history=i.history,this.expirer=i.expirer,this.storage=i.storage,this.relayer=i.relayer,this.pairing=i.pairing,this.verify=i.verify,this.echoClient=i.echoClient,this.linkModeSupportedApps=i.linkModeSupportedApps,this.eventClient=i.eventClient,this.initialized=i.initialized,this.logChunkController=i.logChunkController,i}catch(a){console.warn(\"Failed to copy global core\",a)}this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||Ue,this.customStoragePrefix=e!=null&&e.customStoragePrefix?`:${e.customStoragePrefix}`:\"\";const s=et({level:typeof e?.logger==\"string\"&&e.logger?e.logger:Et.logger,name:he}),{logger:n,chunkLoggerController:o}=Ji({opts:s,maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=o,(t=this.logChunkController)!=null&&t.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{var a,c;(a=this.logChunkController)!=null&&a.downloadLogsBlobInBrowser&&((c=this.logChunkController)==null||c.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()}))}),this.logger=N(n,this.name),this.heartbeat=new Wi,this.crypto=new vi(this,this.logger,e?.keychain),this.history=new ki(this,this.logger),this.expirer=new ji(this,this.logger),this.storage=e!=null&&e.storage?e.storage:new Hi(qi(qi({},It),e?.storageOptions)),this.relayer=new Si({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new Li(this,this.logger),this.verify=new Ui(this,this.logger,this.storage),this.echoClient=new Mi(this.projectId||\"\",this.logger),this.linkModeSupportedApps=[],this.eventClient=new Bi(this,this.logger,e?.telemetryEnabled),this.setGlobalCore(this)}static async init(e){const t=new Te(e);await t.initialize();const i=await t.crypto.getClientId();return await t.storage.setItem(jt,i),t}get context(){return U(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){var e;return(e=this.logChunkController)==null?void 0:e.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(Fe,this.linkModeSupportedApps))}async initialize(){this.logger.trace(\"Initialized\");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.linkModeSupportedApps=await this.storage.getItem(Fe)||[],this.initialized=!0,this.logger.info(\"Core Initialization Success\")}catch(e){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,e),this.logger.error(e.message),e}}getGlobalCore(e=\"\"){try{if(this.isGlobalCoreDisabled())return;const t=`_walletConnectCore_${e}`,i=`${t}_count`;return globalThis[i]=(globalThis[i]||0)+1,globalThis[i]>1&&console.warn(`WalletConnect Core is already initialized. This is probably a mistake and can lead to unexpected behavior. Init() was called ${globalThis[i]} times.`),globalThis[t]}catch(t){console.warn(\"Failed to get global WalletConnect core\",t);return}}setGlobalCore(e){var t;try{if(this.isGlobalCoreDisabled())return;const i=`_walletConnectCore_${((t=e.opts)==null?void 0:t.customStoragePrefix)||\"\"}`;globalThis[i]=e}catch(i){console.warn(\"Failed to set global WalletConnect core\",i)}}isGlobalCoreDisabled(){try{return typeof process<\"u\"&&process.env.DISABLE_GLOBAL_CORE===\"true\"}catch{return!0}}}const Xo=Te;export{he as CORE_CONTEXT,Et as CORE_DEFAULT,ze as CORE_PROTOCOL,It as CORE_STORAGE_OPTIONS,B as CORE_STORAGE_PREFIX,Le as CORE_VERSION,ke as CRYPTO_CLIENT_SEED,Tt as CRYPTO_CONTEXT,Ct as CRYPTO_JWT_TTL,Xo as Core,vi as Crypto,Xt as ECHO_CONTEXT,Zt as ECHO_URL,ii as EVENTS_CLIENT_API_URL,ti as EVENTS_STORAGE_CLEANUP_INTERVAL,ei as EVENTS_STORAGE_CONTEXT,Qt as EVENTS_STORAGE_VERSION,sr as EVENT_CLIENT_AUTHENTICATE_ERRORS,ir as EVENT_CLIENT_AUTHENTICATE_TRACES,Qs as EVENT_CLIENT_CONTEXT,Y as EVENT_CLIENT_PAIRING_ERRORS,G as EVENT_CLIENT_PAIRING_TRACES,tr as EVENT_CLIENT_SESSION_ERRORS,er as EVENT_CLIENT_SESSION_TRACES,qt as EXPIRER_CONTEXT,Xs as EXPIRER_DEFAULT_TTL,M as EXPIRER_EVENTS,Gt as EXPIRER_STORAGE_VERSION,Mi as EchoClient,Bi as EventClient,ji as Expirer,Bt as HISTORY_CONTEXT,F as HISTORY_EVENTS,Vt as HISTORY_STORAGE_VERSION,ki as JsonRpcHistory,Pt as KEYCHAIN_CONTEXT,St as KEYCHAIN_STORAGE_VERSION,Di as KeyChain,Ot as MESSAGES_CONTEXT,Rt as MESSAGES_STORAGE_VERSION,le as MESSAGE_DIRECTION,_i as MessageTracker,Mt as PAIRING_CONTEXT,Js as PAIRING_DEFAULT_TTL,re as PAIRING_EVENTS,se as PAIRING_RPC_OPTS,Kt as PAIRING_STORAGE_VERSION,Ys as PENDING_SUB_RESOLUTION_TIMEOUT,At as PUBLISHER_CONTEXT,je as PUBLISHER_DEFAULT_TTL,Li as Pairing,$t as RELAYER_CONTEXT,Nt as RELAYER_DEFAULT_LOGGER,xt as RELAYER_DEFAULT_PROTOCOL,Ue as RELAYER_DEFAULT_RELAY_URL,C as RELAYER_EVENTS,L as RELAYER_PROVIDER_EVENTS,Lt as RELAYER_RECONNECT_TIMEOUT,_e as RELAYER_SDK_VERSION,Gs as RELAYER_STORAGE_OPTIONS,zt as RELAYER_SUBSCRIBER_SUFFIX,Ws as RELAYER_TRANSPORT_CUTOFF,Si as Relayer,kt as STORE_STORAGE_VERSION,Ut as SUBSCRIBER_CONTEXT,Hs as SUBSCRIBER_DEFAULT_TTL,$ as SUBSCRIBER_EVENTS,Ft as SUBSCRIBER_STORAGE_VERSION,zi as Store,Ti as Subscriber,Q as TRANSPORT_TYPES,Jt as TRUSTED_VERIFY_URLS,Wt as VERIFY_CONTEXT,ue as VERIFY_SERVER,Yt as VERIFY_SERVER_V3,Ui as Verify,jt as WALLETCONNECT_CLIENT_ID,Fe as WALLETCONNECT_LINK_MODE_APPS,Te as default};\n//# sourceMappingURL=index.es.js.map\n","import{RELAYER_EVENTS as Xe,TRANSPORT_TYPES as P,EXPIRER_EVENTS as Tt,PAIRING_EVENTS as Je,RELAYER_DEFAULT_PROTOCOL as qt,EVENT_CLIENT_SESSION_TRACES as k,EVENT_CLIENT_SESSION_ERRORS as H,EVENT_CLIENT_AUTHENTICATE_TRACES as z,EVENT_CLIENT_AUTHENTICATE_ERRORS as re,EVENT_CLIENT_PAIRING_ERRORS as Pt,EVENT_CLIENT_PAIRING_TRACES as Nt,VERIFY_SERVER as Ot,Store as B,Core as bt}from\"@walletconnect/core\";import{pino as At,getDefaultLoggerOptions as xt,generateChildLogger as Ct,getLoggerContext as Vt}from\"@walletconnect/logger\";import{IEngine as Dt,ISignClient as Lt}from\"@walletconnect/types\";import{THIRTY_DAYS as kt,SEVEN_DAYS as Be,FIVE_MINUTES as C,ONE_DAY as U,ONE_HOUR as We,ONE_SECOND as Ze,toMiliseconds as Oe}from\"@walletconnect/time\";import{getInternalError as y,BASE64URL as ne,BASE64 as de,hashMessage as W,parseExpirerTarget as Mt,isValidString as Y,isExpired as Z,isValidId as $t,mergeRequiredAndOptionalNamespaces as Kt,calcExpiry as V,engineEvent as R,createDelayedPromise as ee,getSdkError as O,getDeepLink as Ut,handleDeeplinkRedirect as Gt,isSessionCompatible as jt,hashKey as be,parseChainId as Ae,createEncodedRecap as Ft,getRecapFromResources as xe,mergeEncodedRecaps as Qt,TYPE_2 as Ht,getLinkModeURL as ue,validateSignedCacao as et,getNamespacedDidChainId as tt,getDidAddress as st,getMethodsFromRecap as it,getChainsFromRecap as rt,buildNamespacesFromAuth as nt,formatMessage as zt,MemoryStore as oe,isValidParams as M,isUndefined as X,isValidRelays as Yt,isValidObject as ot,isValidRequiredNamespaces as Xt,isValidNamespaces as Ce,isConformingNamespaces as at,isValidErrorReason as Jt,isValidRelay as Bt,isValidController as Wt,isValidNamespacesChainId as ct,isValidRequest as Zt,isValidNamespacesRequest as es,isValidRequestExpiry as ts,isValidResponse as ss,isValidEvent as is,isValidNamespacesEvent as rs,getSearchParamFromURL as lt,isTestRun as ns,isReactNative as os,isValidArray as as,extractSolanaTransactionId as cs,TYPE_1 as Ve,populateAppMetadata as ls}from\"@walletconnect/utils\";import ps,{EventEmitter as hs}from\"events\";import{isJsonRpcRequest as ds,isJsonRpcResponse as us,payloadId as G,getBigIntRpcId as ge,isJsonRpcResult as j,isJsonRpcError as F,formatJsonRpcRequest as ye,formatJsonRpcResult as gs,formatJsonRpcError as ys}from\"@walletconnect/jsonrpc-utils\";const De=\"wc\",Le=2,ke=\"client\",we=`${De}@${Le}:${ke}:`,me={name:ke,logger:\"error\",controller:!1,relayUrl:\"wss://relay.walletconnect.org\"},ws={session_proposal:\"session_proposal\",session_update:\"session_update\",session_extend:\"session_extend\",session_ping:\"session_ping\",session_delete:\"session_delete\",session_expire:\"session_expire\",session_request:\"session_request\",session_request_sent:\"session_request_sent\",session_event:\"session_event\",proposal_expire:\"proposal_expire\",session_authenticate:\"session_authenticate\",session_request_expire:\"session_request_expire\",session_connect:\"session_connect\"},ms={database:\":memory:\"},Me=\"WALLETCONNECT_DEEPLINK_CHOICE\",_s={created:\"history_created\",updated:\"history_updated\",deleted:\"history_deleted\",sync:\"history_sync\"},Es=\"history\",fs=\"0.3\",pt=\"proposal\",Ss=kt,$e=\"Proposal expired\",ht=\"session\",J=Be,dt=\"engine\",N={wc_sessionPropose:{req:{ttl:C,prompt:!0,tag:1100},res:{ttl:C,prompt:!1,tag:1101},reject:{ttl:C,prompt:!1,tag:1120},autoReject:{ttl:C,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:C,prompt:!1,tag:1102},res:{ttl:C,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:U,prompt:!1,tag:1104},res:{ttl:U,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:U,prompt:!1,tag:1106},res:{ttl:U,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:C,prompt:!0,tag:1108},res:{ttl:C,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:C,prompt:!0,tag:1110},res:{ttl:C,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:U,prompt:!1,tag:1112},res:{ttl:U,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:U,prompt:!1,tag:1114},res:{ttl:U,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:We,prompt:!0,tag:1116},res:{ttl:We,prompt:!1,tag:1117},reject:{ttl:C,prompt:!1,tag:1118},autoReject:{ttl:C,prompt:!1,tag:1119}}},_e={min:C,max:Be},$={idle:\"IDLE\",active:\"ACTIVE\"},Ke={eth_sendTransaction:{key:\"\"},eth_sendRawTransaction:{key:\"\"},wallet_sendCalls:{key:\"\"},solana_signTransaction:{key:\"signature\"},solana_signAllTransactions:{key:\"transactions\"},solana_signAndSendTransaction:{key:\"signature\"}},ut=\"request\",gt=[\"wc_sessionPropose\",\"wc_sessionRequest\",\"wc_authRequest\",\"wc_sessionAuthenticate\"],yt=\"wc\",Rs=1.5,wt=\"auth\",mt=\"authKeys\",_t=\"pairingTopics\",Et=\"requests\",ae=`${yt}@${1.5}:${wt}:`,ce=`${ae}:PUB_KEY`;var vs=Object.defineProperty,Is=Object.defineProperties,Ts=Object.getOwnPropertyDescriptors,ft=Object.getOwnPropertySymbols,qs=Object.prototype.hasOwnProperty,Ps=Object.prototype.propertyIsEnumerable,Ue=(S,n,e)=>n in S?vs(S,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):S[n]=e,v=(S,n)=>{for(var e in n||(n={}))qs.call(n,e)&&Ue(S,e,n[e]);if(ft)for(var e of ft(n))Ps.call(n,e)&&Ue(S,e,n[e]);return S},b=(S,n)=>Is(S,Ts(n)),c=(S,n,e)=>Ue(S,typeof n!=\"symbol\"?n+\"\":n,e);class Ns extends Dt{constructor(n){super(n),c(this,\"name\",dt),c(this,\"events\",new ps),c(this,\"initialized\",!1),c(this,\"requestQueue\",{state:$.idle,queue:[]}),c(this,\"sessionRequestQueue\",{state:$.idle,queue:[]}),c(this,\"requestQueueDelay\",Ze),c(this,\"expectedPairingMethodMap\",new Map),c(this,\"recentlyDeletedMap\",new Map),c(this,\"recentlyDeletedLimit\",200),c(this,\"relayMessageCache\",[]),c(this,\"pendingSessions\",new Map),c(this,\"init\",async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(N)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},Oe(this.requestQueueDelay)))}),c(this,\"connect\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();const t=b(v({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t),t.optionalNamespaces=Kt(t.requiredNamespaces,t.optionalNamespaces),t.requiredNamespaces={};const{pairingTopic:s,requiredNamespaces:i,optionalNamespaces:r,sessionProperties:o,scopedProperties:a,relays:l}=t;let p=s,h,u=!1;try{if(p){const T=this.client.core.pairing.pairings.get(p);this.client.logger.warn(\"connect() with existing pairing topic is deprecated and will be removed in the next major release.\"),u=T.active}}catch(T){throw this.client.logger.error(`connect() -> pairing.get(${p}) failed`),T}if(!p||!u){const{topic:T,uri:K}=await this.client.core.pairing.create();p=T,h=K}if(!p){const{message:T}=y(\"NO_MATCHING_KEY\",`connect() pairing topic: ${p}`);throw new Error(T)}const d=await this.client.core.crypto.generateKeyPair(),w=N.wc_sessionPropose.req.ttl||C,m=V(w),f=b(v(v({requiredNamespaces:i,optionalNamespaces:r,relays:l??[{protocol:qt}],proposer:{publicKey:d,metadata:this.client.metadata},expiryTimestamp:m,pairingTopic:p},o&&{sessionProperties:o}),a&&{scopedProperties:a}),{id:G()}),_=R(\"session_connect\",f.id),{reject:g,resolve:A,done:D}=ee(w,$e),I=({id:T})=>{T===f.id&&(this.client.events.off(\"proposal_expire\",I),this.pendingSessions.delete(f.id),this.events.emit(_,{error:{message:$e,code:0}}))};return this.client.events.on(\"proposal_expire\",I),this.events.once(_,({error:T,session:K})=>{this.client.events.off(\"proposal_expire\",I),T?g(T):K&&A(K)}),await this.sendRequest({topic:p,method:\"wc_sessionPropose\",params:f,throwOnFailedPublish:!0,clientRpcId:f.id}),await this.setProposal(f.id,f),{uri:h,approval:D}}),c(this,\"pair\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(e)}catch(t){throw this.client.logger.error(\"pair() failed\"),t}}),c(this,\"approve\",async e=>{var t,s,i;const r=this.client.core.eventClient.createEvent({properties:{topic:(t=e?.id)==null?void 0:t.toString(),trace:[k.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(q){throw r.setError(H.no_internet_connection),q}try{await this.isValidProposalId(e?.id)}catch(q){throw this.client.logger.error(`approve() -> proposal.get(${e?.id}) failed`),r.setError(H.proposal_not_found),q}try{await this.isValidApprove(e)}catch(q){throw this.client.logger.error(\"approve() -> isValidApprove() failed\"),r.setError(H.session_approve_namespace_validation_failure),q}const{id:o,relayProtocol:a,namespaces:l,sessionProperties:p,scopedProperties:h,sessionConfig:u}=e,d=this.client.proposal.get(o);this.client.core.eventClient.deleteEvent({eventId:r.eventId});const{pairingTopic:w,proposer:m,requiredNamespaces:f,optionalNamespaces:_}=d;let g=(s=this.client.core.eventClient)==null?void 0:s.getEvent({topic:w});g||(g=(i=this.client.core.eventClient)==null?void 0:i.createEvent({type:k.session_approve_started,properties:{topic:w,trace:[k.session_approve_started,k.session_namespaces_validation_success]}}));const A=await this.client.core.crypto.generateKeyPair(),D=m.publicKey,I=await this.client.core.crypto.generateSharedKey(A,D),T=v(v(v({relay:{protocol:a??\"irn\"},namespaces:l,controller:{publicKey:A,metadata:this.client.metadata},expiry:V(J)},p&&{sessionProperties:p}),h&&{scopedProperties:h}),u&&{sessionConfig:u}),K=P.relay;g.addTrace(k.subscribing_session_topic);try{await this.client.core.relayer.subscribe(I,{transportType:K})}catch(q){throw g.setError(H.subscribe_session_topic_failure),q}g.addTrace(k.subscribe_session_topic_success);const fe=b(v({},T),{topic:I,requiredNamespaces:f,optionalNamespaces:_,pairingTopic:w,acknowledged:!1,self:T.controller,peer:{publicKey:m.publicKey,metadata:m.metadata},controller:A,transportType:P.relay});await this.client.session.set(I,fe),g.addTrace(k.store_session);try{g.addTrace(k.publishing_session_settle),await this.sendRequest({topic:I,method:\"wc_sessionSettle\",params:T,throwOnFailedPublish:!0}).catch(q=>{throw g?.setError(H.session_settle_publish_failure),q}),g.addTrace(k.session_settle_publish_success),g.addTrace(k.publishing_session_approve),await this.sendResult({id:o,topic:w,result:{relay:{protocol:a??\"irn\"},responderPublicKey:A},throwOnFailedPublish:!0}).catch(q=>{throw g?.setError(H.session_approve_publish_failure),q}),g.addTrace(k.session_approve_publish_success)}catch(q){throw this.client.logger.error(q),this.client.session.delete(I,O(\"USER_DISCONNECTED\")),await this.client.core.relayer.unsubscribe(I),q}return this.client.core.eventClient.deleteEvent({eventId:g.eventId}),await this.client.core.pairing.updateMetadata({topic:w,metadata:m.metadata}),await this.client.proposal.delete(o,O(\"USER_DISCONNECTED\")),await this.client.core.pairing.activate({topic:w}),await this.setExpiry(I,V(J)),{topic:I,acknowledged:()=>Promise.resolve(this.client.session.get(I))}}),c(this,\"reject\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(e)}catch(r){throw this.client.logger.error(\"reject() -> isValidReject() failed\"),r}const{id:t,reason:s}=e;let i;try{i=this.client.proposal.get(t).pairingTopic}catch(r){throw this.client.logger.error(`reject() -> proposal.get(${t}) failed`),r}i&&(await this.sendError({id:t,topic:i,error:s,rpcOpts:N.wc_sessionPropose.reject}),await this.client.proposal.delete(t,O(\"USER_DISCONNECTED\")))}),c(this,\"update\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(e)}catch(h){throw this.client.logger.error(\"update() -> isValidUpdate() failed\"),h}const{topic:t,namespaces:s}=e,{done:i,resolve:r,reject:o}=ee(),a=G(),l=ge().toString(),p=this.client.session.get(t).namespaces;return this.events.once(R(\"session_update\",a),({error:h})=>{h?o(h):r()}),await this.client.session.update(t,{namespaces:s}),await this.sendRequest({topic:t,method:\"wc_sessionUpdate\",params:{namespaces:s},throwOnFailedPublish:!0,clientRpcId:a,relayRpcId:l}).catch(h=>{this.client.logger.error(h),this.client.session.update(t,{namespaces:p}),o(h)}),{acknowledged:i}}),c(this,\"extend\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(e)}catch(a){throw this.client.logger.error(\"extend() -> isValidExtend() failed\"),a}const{topic:t}=e,s=G(),{done:i,resolve:r,reject:o}=ee();return this.events.once(R(\"session_extend\",s),({error:a})=>{a?o(a):r()}),await this.setExpiry(t,V(J)),this.sendRequest({topic:t,method:\"wc_sessionExtend\",params:{},clientRpcId:s,throwOnFailedPublish:!0}).catch(a=>{o(a)}),{acknowledged:i}}),c(this,\"request\",async e=>{this.isInitialized();try{await this.isValidRequest(e)}catch(_){throw this.client.logger.error(\"request() -> isValidRequest() failed\"),_}const{chainId:t,request:s,topic:i,expiry:r=N.wc_sessionRequest.req.ttl}=e,o=this.client.session.get(i);o?.transportType===P.relay&&await this.confirmOnlineStateOrThrow();const a=G(),l=ge().toString(),{done:p,resolve:h,reject:u}=ee(r,\"Request expired. Please try again.\");this.events.once(R(\"session_request\",a),({error:_,result:g})=>{_?u(_):h(g)});const d=\"wc_sessionRequest\",w=this.getAppLinkIfEnabled(o.peer.metadata,o.transportType);if(w)return await this.sendRequest({clientRpcId:a,relayRpcId:l,topic:i,method:d,params:{request:b(v({},s),{expiryTimestamp:V(r)}),chainId:t},expiry:r,throwOnFailedPublish:!0,appLink:w}).catch(_=>u(_)),this.client.events.emit(\"session_request_sent\",{topic:i,request:s,chainId:t,id:a}),await p();const m={request:b(v({},s),{expiryTimestamp:V(r)}),chainId:t},f=this.shouldSetTVF(d,m);return await Promise.all([new Promise(async _=>{await this.sendRequest(v({clientRpcId:a,relayRpcId:l,topic:i,method:d,params:m,expiry:r,throwOnFailedPublish:!0},f&&{tvf:this.getTVFParams(a,m)})).catch(g=>u(g)),this.client.events.emit(\"session_request_sent\",{topic:i,request:s,chainId:t,id:a}),_()}),new Promise(async _=>{var g;if(!((g=o.sessionConfig)!=null&&g.disableDeepLink)){const A=await Ut(this.client.core.storage,Me);await Gt({id:a,topic:i,wcDeepLink:A})}_()}),p()]).then(_=>_[2])}),c(this,\"respond\",async e=>{this.isInitialized(),await this.isValidRespond(e);const{topic:t,response:s}=e,{id:i}=s,r=this.client.session.get(t);r.transportType===P.relay&&await this.confirmOnlineStateOrThrow();const o=this.getAppLinkIfEnabled(r.peer.metadata,r.transportType);j(s)?await this.sendResult({id:i,topic:t,result:s.result,throwOnFailedPublish:!0,appLink:o}):F(s)&&await this.sendError({id:i,topic:t,error:s.error,appLink:o}),this.cleanupAfterResponse(e)}),c(this,\"ping\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(e)}catch(s){throw this.client.logger.error(\"ping() -> isValidPing() failed\"),s}const{topic:t}=e;if(this.client.session.keys.includes(t)){const s=G(),i=ge().toString(),{done:r,resolve:o,reject:a}=ee();this.events.once(R(\"session_ping\",s),({error:l})=>{l?a(l):o()}),await Promise.all([this.sendRequest({topic:t,method:\"wc_sessionPing\",params:{},throwOnFailedPublish:!0,clientRpcId:s,relayRpcId:i}),r()])}else this.client.core.pairing.pairings.keys.includes(t)&&(this.client.logger.warn(\"ping() on pairing topic is deprecated and will be removed in the next major release.\"),await this.client.core.pairing.ping({topic:t}))}),c(this,\"emit\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);const{topic:t,event:s,chainId:i}=e,r=ge().toString(),o=G();await this.sendRequest({topic:t,method:\"wc_sessionEvent\",params:{event:s,chainId:i},throwOnFailedPublish:!0,relayRpcId:r,clientRpcId:o})}),c(this,\"disconnect\",async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(e);const{topic:t}=e;if(this.client.session.keys.includes(t))await this.sendRequest({topic:t,method:\"wc_sessionDelete\",params:O(\"USER_DISCONNECTED\"),throwOnFailedPublish:!0}),await this.deleteSession({topic:t,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(t))await this.client.core.pairing.disconnect({topic:t});else{const{message:s}=y(\"MISMATCHED_TOPIC\",`Session or pairing topic not found: ${t}`);throw new Error(s)}}),c(this,\"find\",e=>(this.isInitialized(),this.client.session.getAll().filter(t=>jt(t,e)))),c(this,\"getPendingSessionRequests\",()=>this.client.pendingRequest.getAll()),c(this,\"authenticate\",async(e,t)=>{var s;this.isInitialized(),this.isValidAuthenticate(e);const i=t&&this.client.core.linkModeSupportedApps.includes(t)&&((s=this.client.metadata.redirect)==null?void 0:s.linkMode),r=i?P.link_mode:P.relay;r===P.relay&&await this.confirmOnlineStateOrThrow();const{chains:o,statement:a=\"\",uri:l,domain:p,nonce:h,type:u,exp:d,nbf:w,methods:m=[],expiry:f}=e,_=[...e.resources||[]],{topic:g,uri:A}=await this.client.core.pairing.create({methods:[\"wc_sessionAuthenticate\"],transportType:r});this.client.logger.info({message:\"Generated new pairing\",pairing:{topic:g,uri:A}});const D=await this.client.core.crypto.generateKeyPair(),I=be(D);if(await Promise.all([this.client.auth.authKeys.set(ce,{responseTopic:I,publicKey:D}),this.client.auth.pairingTopics.set(I,{topic:I,pairingTopic:g})]),await this.client.core.relayer.subscribe(I,{transportType:r}),this.client.logger.info(`sending request to new pairing topic: ${g}`),m.length>0){const{namespace:x}=Ae(o[0]);let L=Ft(x,\"request\",m);xe(_)&&(L=Qt(L,_.pop())),_.push(L)}const T=f&&f>N.wc_sessionAuthenticate.req.ttl?f:N.wc_sessionAuthenticate.req.ttl,K={authPayload:{type:u??\"caip122\",chains:o,statement:a,aud:l,domain:p,version:\"1\",nonce:h,iat:new Date().toISOString(),exp:d,nbf:w,resources:_},requester:{publicKey:D,metadata:this.client.metadata},expiryTimestamp:V(T)},fe={eip155:{chains:o,methods:[...new Set([\"personal_sign\",...m])],events:[\"chainChanged\",\"accountsChanged\"]}},q={requiredNamespaces:{},optionalNamespaces:fe,relays:[{protocol:\"irn\"}],pairingTopic:g,proposer:{publicKey:D,metadata:this.client.metadata},expiryTimestamp:V(N.wc_sessionPropose.req.ttl),id:G()},{done:Rt,resolve:je,reject:Se}=ee(T,\"Request expired\"),te=G(),le=R(\"session_connect\",q.id),Re=R(\"session_request\",te),pe=async({error:x,session:L})=>{this.events.off(Re,ve),x?Se(x):L&&je({session:L})},ve=async x=>{var L,Fe,Qe;if(await this.deletePendingAuthRequest(te,{message:\"fulfilled\",code:0}),x.error){const ie=O(\"WC_METHOD_UNSUPPORTED\",\"wc_sessionAuthenticate\");return x.error.code===ie.code?void 0:(this.events.off(le,pe),Se(x.error.message))}await this.deleteProposal(q.id),this.events.off(le,pe);const{cacaos:He,responder:Q}=x.result,Te=[],ze=[];for(const ie of He){await et({cacao:ie,projectId:this.client.core.projectId})||(this.client.logger.error(ie,\"Signature verification failed\"),Se(O(\"SESSION_SETTLEMENT_FAILED\",\"Signature verification failed\")));const{p:qe}=ie,Pe=xe(qe.resources),Ye=[tt(qe.iss)],vt=st(qe.iss);if(Pe){const Ne=it(Pe),It=rt(Pe);Te.push(...Ne),Ye.push(...It)}for(const Ne of Ye)ze.push(`${Ne}:${vt}`)}const se=await this.client.core.crypto.generateSharedKey(D,Q.publicKey);let he;Te.length>0&&(he={topic:se,acknowledged:!0,self:{publicKey:D,metadata:this.client.metadata},peer:Q,controller:Q.publicKey,expiry:V(J),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:\"irn\"},pairingTopic:g,namespaces:nt([...new Set(Te)],[...new Set(ze)]),transportType:r},await this.client.core.relayer.subscribe(se,{transportType:r}),await this.client.session.set(se,he),g&&await this.client.core.pairing.updateMetadata({topic:g,metadata:Q.metadata}),he=this.client.session.get(se)),(L=this.client.metadata.redirect)!=null&&L.linkMode&&(Fe=Q.metadata.redirect)!=null&&Fe.linkMode&&(Qe=Q.metadata.redirect)!=null&&Qe.universal&&t&&(this.client.core.addLinkModeSupportedApp(Q.metadata.redirect.universal),this.client.session.update(se,{transportType:P.link_mode})),je({auths:He,session:he})};this.events.once(le,pe),this.events.once(Re,ve);let Ie;try{if(i){const x=ye(\"wc_sessionAuthenticate\",K,te);this.client.core.history.set(g,x);const L=await this.client.core.crypto.encode(\"\",x,{type:Ht,encoding:ne});Ie=ue(t,g,L)}else await Promise.all([this.sendRequest({topic:g,method:\"wc_sessionAuthenticate\",params:K,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:te}),this.sendRequest({topic:g,method:\"wc_sessionPropose\",params:q,expiry:N.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:q.id})])}catch(x){throw this.events.off(le,pe),this.events.off(Re,ve),x}return await this.setProposal(q.id,q),await this.setAuthRequest(te,{request:b(v({},K),{verifyContext:{}}),pairingTopic:g,transportType:r}),{uri:Ie??A,response:Rt}}),c(this,\"approveSessionAuthenticate\",async e=>{const{id:t,auths:s}=e,i=this.client.core.eventClient.createEvent({properties:{topic:t.toString(),trace:[z.authenticated_session_approve_started]}});try{this.isInitialized()}catch(f){throw i.setError(re.no_internet_connection),f}const r=this.getPendingAuthRequest(t);if(!r)throw i.setError(re.authenticated_session_pending_request_not_found),new Error(`Could not find pending auth request with id ${t}`);const o=r.transportType||P.relay;o===P.relay&&await this.confirmOnlineStateOrThrow();const a=r.requester.publicKey,l=await this.client.core.crypto.generateKeyPair(),p=be(a),h={type:Ve,receiverPublicKey:a,senderPublicKey:l},u=[],d=[];for(const f of s){if(!await et({cacao:f,projectId:this.client.core.projectId})){i.setError(re.invalid_cacao);const I=O(\"SESSION_SETTLEMENT_FAILED\",\"Signature verification failed\");throw await this.sendError({id:t,topic:p,error:I,encodeOpts:h}),new Error(I.message)}i.addTrace(z.cacaos_verified);const{p:_}=f,g=xe(_.resources),A=[tt(_.iss)],D=st(_.iss);if(g){const I=it(g),T=rt(g);u.push(...I),A.push(...T)}for(const I of A)d.push(`${I}:${D}`)}const w=await this.client.core.crypto.generateSharedKey(l,a);i.addTrace(z.create_authenticated_session_topic);let m;if(u?.length>0){m={topic:w,acknowledged:!0,self:{publicKey:l,metadata:this.client.metadata},peer:{publicKey:a,metadata:r.requester.metadata},controller:a,expiry:V(J),authentication:s,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:\"irn\"},pairingTopic:r.pairingTopic,namespaces:nt([...new Set(u)],[...new Set(d)]),transportType:o},i.addTrace(z.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(w,{transportType:o})}catch(f){throw i.setError(re.subscribe_authenticated_session_topic_failure),f}i.addTrace(z.subscribe_authenticated_session_topic_success),await this.client.session.set(w,m),i.addTrace(z.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:r.pairingTopic,metadata:r.requester.metadata})}i.addTrace(z.publishing_authenticated_session_approve);try{await this.sendResult({topic:p,id:t,result:{cacaos:s,responder:{publicKey:l,metadata:this.client.metadata}},encodeOpts:h,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(r.requester.metadata,o)})}catch(f){throw i.setError(re.authenticated_session_approve_publish_failure),f}return await this.client.auth.requests.delete(t,{message:\"fulfilled\",code:0}),await this.client.core.pairing.activate({topic:r.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:i.eventId}),{session:m}}),c(this,\"rejectSessionAuthenticate\",async e=>{this.isInitialized();const{id:t,reason:s}=e,i=this.getPendingAuthRequest(t);if(!i)throw new Error(`Could not find pending auth request with id ${t}`);i.transportType===P.relay&&await this.confirmOnlineStateOrThrow();const r=i.requester.publicKey,o=await this.client.core.crypto.generateKeyPair(),a=be(r),l={type:Ve,receiverPublicKey:r,senderPublicKey:o};await this.sendError({id:t,topic:a,error:s,encodeOpts:l,rpcOpts:N.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(i.requester.metadata,i.transportType)}),await this.client.auth.requests.delete(t,{message:\"rejected\",code:0}),await this.client.proposal.delete(t,O(\"USER_DISCONNECTED\"))}),c(this,\"formatAuthMessage\",e=>{this.isInitialized();const{request:t,iss:s}=e;return zt(t,s)}),c(this,\"processRelayMessageCache\",()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{const e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e){this.client.logger.error(e)}},50)}),c(this,\"cleanupDuplicatePairings\",async e=>{if(e.pairingTopic)try{const t=this.client.core.pairing.pairings.get(e.pairingTopic),s=this.client.core.pairing.pairings.getAll().filter(i=>{var r,o;return((r=i.peerMetadata)==null?void 0:r.url)&&((o=i.peerMetadata)==null?void 0:o.url)===e.peer.metadata.url&&i.topic&&i.topic!==t.topic});if(s.length===0)return;this.client.logger.info(`Cleaning up ${s.length} duplicate pairing(s)`),await Promise.all(s.map(i=>this.client.core.pairing.disconnect({topic:i.topic}))),this.client.logger.info(\"Duplicate pairings clean up finished\")}catch(t){this.client.logger.error(t)}}),c(this,\"deleteSession\",async e=>{var t;const{topic:s,expirerHasDeleted:i=!1,emitEvent:r=!0,id:o=0}=e,{self:a}=this.client.session.get(s);await this.client.core.relayer.unsubscribe(s),await this.client.session.delete(s,O(\"USER_DISCONNECTED\")),this.addToRecentlyDeleted(s,\"session\"),this.client.core.crypto.keychain.has(a.publicKey)&&await this.client.core.crypto.deleteKeyPair(a.publicKey),this.client.core.crypto.keychain.has(s)&&await this.client.core.crypto.deleteSymKey(s),i||this.client.core.expirer.del(s),this.client.core.storage.removeItem(Me).catch(l=>this.client.logger.warn(l)),this.getPendingSessionRequests().forEach(l=>{l.topic===s&&this.deletePendingSessionRequest(l.id,O(\"USER_DISCONNECTED\"))}),s===((t=this.sessionRequestQueue.queue[0])==null?void 0:t.topic)&&(this.sessionRequestQueue.state=$.idle),r&&this.client.events.emit(\"session_delete\",{id:o,topic:s})}),c(this,\"deleteProposal\",async(e,t)=>{if(t)try{const s=this.client.proposal.get(e),i=this.client.core.eventClient.getEvent({topic:s.pairingTopic});i?.setError(H.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,O(\"USER_DISCONNECTED\")),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,\"proposal\")}),c(this,\"deletePendingSessionRequest\",async(e,t,s=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),s?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,\"request\"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(i=>i.id!==e),s&&(this.sessionRequestQueue.state=$.idle,this.client.events.emit(\"session_request_expire\",{id:e}))}),c(this,\"deletePendingAuthRequest\",async(e,t,s=!1)=>{await Promise.all([this.client.auth.requests.delete(e,t),s?Promise.resolve():this.client.core.expirer.del(e)])}),c(this,\"setExpiry\",async(e,t)=>{this.client.session.keys.includes(e)&&(this.client.core.expirer.set(e,t),await this.client.session.update(e,{expiry:t}))}),c(this,\"setProposal\",async(e,t)=>{this.client.core.expirer.set(e,V(N.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)}),c(this,\"setAuthRequest\",async(e,t)=>{const{request:s,pairingTopic:i,transportType:r=P.relay}=t;this.client.core.expirer.set(e,s.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:s.authPayload,requester:s.requester,expiryTimestamp:s.expiryTimestamp,id:e,pairingTopic:i,verifyContext:s.verifyContext,transportType:r})}),c(this,\"setPendingSessionRequest\",async e=>{const{id:t,topic:s,params:i,verifyContext:r}=e,o=i.request.expiryTimestamp||V(N.wc_sessionRequest.req.ttl);this.client.core.expirer.set(t,o),await this.client.pendingRequest.set(t,{id:t,topic:s,params:i,verifyContext:r})}),c(this,\"sendRequest\",async e=>{const{topic:t,method:s,params:i,expiry:r,relayRpcId:o,clientRpcId:a,throwOnFailedPublish:l,appLink:p,tvf:h}=e,u=ye(s,i,a);let d;const w=!!p;try{const _=w?ne:de;d=await this.client.core.crypto.encode(t,u,{encoding:_})}catch(_){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${t} failed`),_}let m;if(gt.includes(s)){const _=W(JSON.stringify(u)),g=W(d);m=await this.client.core.verify.register({id:g,decryptedId:_})}const f=N[s].req;if(f.attestation=m,r&&(f.ttl=r),o&&(f.id=o),this.client.core.history.set(t,u),w){const _=ue(p,t,d);await global.Linking.openURL(_,this.client.name)}else{const _=N[s].req;r&&(_.ttl=r),o&&(_.id=o),_.tvf=b(v({},h),{correlationId:u.id}),l?(_.internal=b(v({},_.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(t,d,_)):this.client.core.relayer.publish(t,d,_).catch(g=>this.client.logger.error(g))}return u.id}),c(this,\"sendResult\",async e=>{const{id:t,topic:s,result:i,throwOnFailedPublish:r,encodeOpts:o,appLink:a}=e,l=gs(t,i);let p;const h=a&&typeof(global==null?void 0:global.Linking)<\"u\";try{const w=h?ne:de;p=await this.client.core.crypto.encode(s,l,b(v({},o||{}),{encoding:w}))}catch(w){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${s} failed`),w}let u,d;try{u=await this.client.core.history.get(s,t);const w=u.request;try{this.shouldSetTVF(w.method,w.params)&&(d=this.getTVFParams(t,w.params,i))}catch(m){this.client.logger.warn(\"sendResult() -> getTVFParams() failed\",m)}}catch(w){throw this.client.logger.error(`sendResult() -> history.get(${s}, ${t}) failed`),w}if(h){const w=ue(a,s,p);await global.Linking.openURL(w,this.client.name)}else{const w=u.request.method,m=N[w].res;m.tvf=b(v({},d),{correlationId:t}),r?(m.internal=b(v({},m.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(s,p,m)):this.client.core.relayer.publish(s,p,m).catch(f=>this.client.logger.error(f))}await this.client.core.history.resolve(l)}),c(this,\"sendError\",async e=>{const{id:t,topic:s,error:i,encodeOpts:r,rpcOpts:o,appLink:a}=e,l=ys(t,i);let p;const h=a&&typeof(global==null?void 0:global.Linking)<\"u\";try{const d=h?ne:de;p=await this.client.core.crypto.encode(s,l,b(v({},r||{}),{encoding:d}))}catch(d){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${s} failed`),d}let u;try{u=await this.client.core.history.get(s,t)}catch(d){throw this.client.logger.error(`sendError() -> history.get(${s}, ${t}) failed`),d}if(h){const d=ue(a,s,p);await global.Linking.openURL(d,this.client.name)}else{const d=u.request.method,w=o||N[d].res;this.client.core.relayer.publish(s,p,w)}await this.client.core.history.resolve(l)}),c(this,\"cleanup\",async()=>{const e=[],t=[];this.client.session.getAll().forEach(s=>{let i=!1;Z(s.expiry)&&(i=!0),this.client.core.crypto.keychain.has(s.topic)||(i=!0),i&&e.push(s.topic)}),this.client.proposal.getAll().forEach(s=>{Z(s.expiryTimestamp)&&t.push(s.id)}),await Promise.all([...e.map(s=>this.deleteSession({topic:s})),...t.map(s=>this.deleteProposal(s))])}),c(this,\"onProviderMessageEvent\",async e=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(e):await this.onRelayMessage(e)}),c(this,\"onRelayEventRequest\",async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()}),c(this,\"processRequestsQueue\",async()=>{if(this.requestQueue.state===$.active){this.client.logger.info(\"Request queue already active, skipping...\");return}for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=$.active;const e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(t){this.client.logger.warn(t)}}this.requestQueue.state=$.idle}),c(this,\"processRequest\",async e=>{const{topic:t,payload:s,attestation:i,transportType:r,encryptedId:o}=e,a=s.method;if(!this.shouldIgnorePairingRequest({topic:t,requestMethod:a}))switch(a){case\"wc_sessionPropose\":return await this.onSessionProposeRequest({topic:t,payload:s,attestation:i,encryptedId:o});case\"wc_sessionSettle\":return await this.onSessionSettleRequest(t,s);case\"wc_sessionUpdate\":return await this.onSessionUpdateRequest(t,s);case\"wc_sessionExtend\":return await this.onSessionExtendRequest(t,s);case\"wc_sessionPing\":return await this.onSessionPingRequest(t,s);case\"wc_sessionDelete\":return await this.onSessionDeleteRequest(t,s);case\"wc_sessionRequest\":return await this.onSessionRequest({topic:t,payload:s,attestation:i,encryptedId:o,transportType:r});case\"wc_sessionEvent\":return await this.onSessionEventRequest(t,s);case\"wc_sessionAuthenticate\":return await this.onSessionAuthenticateRequest({topic:t,payload:s,attestation:i,encryptedId:o,transportType:r});default:return this.client.logger.info(`Unsupported request method ${a}`)}}),c(this,\"onRelayEventResponse\",async e=>{const{topic:t,payload:s,transportType:i}=e,r=(await this.client.core.history.get(t,s.id)).request.method;switch(r){case\"wc_sessionPropose\":return this.onSessionProposeResponse(t,s,i);case\"wc_sessionSettle\":return this.onSessionSettleResponse(t,s);case\"wc_sessionUpdate\":return this.onSessionUpdateResponse(t,s);case\"wc_sessionExtend\":return this.onSessionExtendResponse(t,s);case\"wc_sessionPing\":return this.onSessionPingResponse(t,s);case\"wc_sessionRequest\":return this.onSessionRequestResponse(t,s);case\"wc_sessionAuthenticate\":return this.onSessionAuthenticateResponse(t,s);default:return this.client.logger.info(`Unsupported response method ${r}`)}}),c(this,\"onRelayEventUnknownPayload\",e=>{const{topic:t}=e,{message:s}=y(\"MISSING_OR_INVALID\",`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw new Error(s)}),c(this,\"shouldIgnorePairingRequest\",e=>{const{topic:t,requestMethod:s}=e,i=this.expectedPairingMethodMap.get(t);return!i||i.includes(s)?!1:!!(i.includes(\"wc_sessionAuthenticate\")&&this.client.events.listenerCount(\"session_authenticate\")>0)}),c(this,\"onSessionProposeRequest\",async e=>{const{topic:t,payload:s,attestation:i,encryptedId:r}=e,{params:o,id:a}=s;try{const l=this.client.core.eventClient.getEvent({topic:t});this.client.events.listenerCount(\"session_proposal\")===0&&(console.warn(\"No listener for session_proposal event\"),l?.setError(Pt.proposal_listener_not_found)),this.isValidConnect(v({},s.params));const p=o.expiryTimestamp||V(N.wc_sessionPropose.req.ttl),h=v({id:a,pairingTopic:t,expiryTimestamp:p},o);await this.setProposal(a,h);const u=await this.getVerifyContext({attestationId:i,hash:W(JSON.stringify(s)),encryptedId:r,metadata:h.proposer.metadata});l?.addTrace(Nt.emit_session_proposal),this.client.events.emit(\"session_proposal\",{id:a,params:h,verifyContext:u})}catch(l){await this.sendError({id:a,topic:t,error:l,rpcOpts:N.wc_sessionPropose.autoReject}),this.client.logger.error(l)}}),c(this,\"onSessionProposeResponse\",async(e,t,s)=>{const{id:i}=t;if(j(t)){const{result:r}=t;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",result:r});const o=this.client.proposal.get(i);this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",proposal:o});const a=o.proposer.publicKey;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",selfPublicKey:a});const l=r.responderPublicKey;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",peerPublicKey:l});const p=await this.client.core.crypto.generateSharedKey(a,l);this.pendingSessions.set(i,{sessionTopic:p,pairingTopic:e,proposalId:i,publicKey:a});const h=await this.client.core.relayer.subscribe(p,{transportType:s});this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",subscriptionId:h}),await this.client.core.pairing.activate({topic:e})}else if(F(t)){await this.client.proposal.delete(i,O(\"USER_DISCONNECTED\"));const r=R(\"session_connect\",i);if(this.events.listenerCount(r)===0)throw new Error(`emitting ${r} without any listeners, 954`);this.events.emit(r,{error:t.error})}}),c(this,\"onSessionSettleRequest\",async(e,t)=>{const{id:s,params:i}=t;try{this.isValidSessionSettleRequest(i);const{relay:r,controller:o,expiry:a,namespaces:l,sessionProperties:p,scopedProperties:h,sessionConfig:u}=t.params,d=[...this.pendingSessions.values()].find(f=>f.sessionTopic===e);if(!d)return this.client.logger.error(`Pending session not found for topic ${e}`);const w=this.client.proposal.get(d.proposalId),m=b(v(v(v({topic:e,relay:r,expiry:a,namespaces:l,acknowledged:!0,pairingTopic:d.pairingTopic,requiredNamespaces:w.requiredNamespaces,optionalNamespaces:w.optionalNamespaces,controller:o.publicKey,self:{publicKey:d.publicKey,metadata:this.client.metadata},peer:{publicKey:o.publicKey,metadata:o.metadata}},p&&{sessionProperties:p}),h&&{scopedProperties:h}),u&&{sessionConfig:u}),{transportType:P.relay});await this.client.session.set(m.topic,m),await this.setExpiry(m.topic,m.expiry),await this.client.core.pairing.updateMetadata({topic:d.pairingTopic,metadata:m.peer.metadata}),this.client.events.emit(\"session_connect\",{session:m}),this.events.emit(R(\"session_connect\",d.proposalId),{session:m}),this.pendingSessions.delete(d.proposalId),this.deleteProposal(d.proposalId,!1),this.cleanupDuplicatePairings(m),await this.sendResult({id:t.id,topic:e,result:!0,throwOnFailedPublish:!0})}catch(r){await this.sendError({id:s,topic:e,error:r}),this.client.logger.error(r)}}),c(this,\"onSessionSettleResponse\",async(e,t)=>{const{id:s}=t;j(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(R(\"session_approve\",s),{})):F(t)&&(await this.client.session.delete(e,O(\"USER_DISCONNECTED\")),this.events.emit(R(\"session_approve\",s),{error:t.error}))}),c(this,\"onSessionUpdateRequest\",async(e,t)=>{const{params:s,id:i}=t;try{const r=`${e}_session_update`,o=oe.get(r);if(o&&this.isRequestOutOfSync(o,i)){this.client.logger.warn(`Discarding out of sync request - ${i}`),this.sendError({id:i,topic:e,error:O(\"INVALID_UPDATE_REQUEST\")});return}this.isValidUpdate(v({topic:e},s));try{oe.set(r,i),await this.client.session.update(e,{namespaces:s.namespaces}),await this.sendResult({id:i,topic:e,result:!0,throwOnFailedPublish:!0})}catch(a){throw oe.delete(r),a}this.client.events.emit(\"session_update\",{id:i,topic:e,params:s})}catch(r){await this.sendError({id:i,topic:e,error:r}),this.client.logger.error(r)}}),c(this,\"isRequestOutOfSync\",(e,t)=>t.toString().slice(0,-3)<e.toString().slice(0,-3)),c(this,\"onSessionUpdateResponse\",(e,t)=>{const{id:s}=t,i=R(\"session_update\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);j(t)?this.events.emit(R(\"session_update\",s),{}):F(t)&&this.events.emit(R(\"session_update\",s),{error:t.error})}),c(this,\"onSessionExtendRequest\",async(e,t)=>{const{id:s}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,V(J)),await this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(\"session_extend\",{id:s,topic:e})}catch(i){await this.sendError({id:s,topic:e,error:i}),this.client.logger.error(i)}}),c(this,\"onSessionExtendResponse\",(e,t)=>{const{id:s}=t,i=R(\"session_extend\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);j(t)?this.events.emit(R(\"session_extend\",s),{}):F(t)&&this.events.emit(R(\"session_extend\",s),{error:t.error})}),c(this,\"onSessionPingRequest\",async(e,t)=>{const{id:s}=t;try{this.isValidPing({topic:e}),await this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(\"session_ping\",{id:s,topic:e})}catch(i){await this.sendError({id:s,topic:e,error:i}),this.client.logger.error(i)}}),c(this,\"onSessionPingResponse\",(e,t)=>{const{id:s}=t,i=R(\"session_ping\",s);setTimeout(()=>{if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners 2176`);j(t)?this.events.emit(R(\"session_ping\",s),{}):F(t)&&this.events.emit(R(\"session_ping\",s),{error:t.error})},500)}),c(this,\"onSessionDeleteRequest\",async(e,t)=>{const{id:s}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),Promise.all([new Promise(i=>{this.client.core.relayer.once(Xe.publish,async()=>{i(await this.deleteSession({topic:e,id:s}))})}),this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:O(\"USER_DISCONNECTED\")})]).catch(i=>this.client.logger.error(i))}catch(i){this.client.logger.error(i)}}),c(this,\"onSessionRequest\",async e=>{var t,s,i;const{topic:r,payload:o,attestation:a,encryptedId:l,transportType:p}=e,{id:h,params:u}=o;try{await this.isValidRequest(v({topic:r},u));const d=this.client.session.get(r),w=await this.getVerifyContext({attestationId:a,hash:W(JSON.stringify(ye(\"wc_sessionRequest\",u,h))),encryptedId:l,metadata:d.peer.metadata,transportType:p}),m={id:h,topic:r,params:u,verifyContext:w};await this.setPendingSessionRequest(m),p===P.link_mode&&(t=d.peer.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp((s=d.peer.metadata.redirect)==null?void 0:s.universal),(i=this.client.signConfig)!=null&&i.disableRequestQueue?this.emitSessionRequest(m):(this.addSessionRequestToSessionRequestQueue(m),this.processSessionRequestQueue())}catch(d){await this.sendError({id:h,topic:r,error:d}),this.client.logger.error(d)}}),c(this,\"onSessionRequestResponse\",(e,t)=>{const{id:s}=t,i=R(\"session_request\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);j(t)?this.events.emit(R(\"session_request\",s),{result:t.result}):F(t)&&this.events.emit(R(\"session_request\",s),{error:t.error})}),c(this,\"onSessionEventRequest\",async(e,t)=>{const{id:s,params:i}=t;try{const r=`${e}_session_event_${i.event.name}`,o=oe.get(r);if(o&&this.isRequestOutOfSync(o,s)){this.client.logger.info(`Discarding out of sync request - ${s}`);return}this.isValidEmit(v({topic:e},i)),this.client.events.emit(\"session_event\",{id:s,topic:e,params:i}),oe.set(r,s)}catch(r){await this.sendError({id:s,topic:e,error:r}),this.client.logger.error(r)}}),c(this,\"onSessionAuthenticateResponse\",(e,t)=>{const{id:s}=t;this.client.logger.trace({type:\"method\",method:\"onSessionAuthenticateResponse\",topic:e,payload:t}),j(t)?this.events.emit(R(\"session_request\",s),{result:t.result}):F(t)&&this.events.emit(R(\"session_request\",s),{error:t.error})}),c(this,\"onSessionAuthenticateRequest\",async e=>{var t;const{topic:s,payload:i,attestation:r,encryptedId:o,transportType:a}=e;try{const{requester:l,authPayload:p,expiryTimestamp:h}=i.params,u=await this.getVerifyContext({attestationId:r,hash:W(JSON.stringify(i)),encryptedId:o,metadata:l.metadata,transportType:a}),d={requester:l,pairingTopic:s,id:i.id,authPayload:p,verifyContext:u,expiryTimestamp:h};await this.setAuthRequest(i.id,{request:d,pairingTopic:s,transportType:a}),a===P.link_mode&&(t=l.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp(l.metadata.redirect.universal),this.client.events.emit(\"session_authenticate\",{topic:s,params:i.params,id:i.id,verifyContext:u})}catch(l){this.client.logger.error(l);const p=i.params.requester.publicKey,h=await this.client.core.crypto.generateKeyPair(),u=this.getAppLinkIfEnabled(i.params.requester.metadata,a),d={type:Ve,receiverPublicKey:p,senderPublicKey:h};await this.sendError({id:i.id,topic:s,error:l,encodeOpts:d,rpcOpts:N.wc_sessionAuthenticate.autoReject,appLink:u})}}),c(this,\"addSessionRequestToSessionRequestQueue\",e=>{this.sessionRequestQueue.queue.push(e)}),c(this,\"cleanupAfterResponse\",e=>{this.deletePendingSessionRequest(e.response.id,{message:\"fulfilled\",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=$.idle,this.processSessionRequestQueue()},Oe(this.requestQueueDelay))}),c(this,\"cleanupPendingSentRequestsForTopic\",({topic:e,error:t})=>{const s=this.client.core.history.pending;s.length>0&&s.filter(i=>i.topic===e&&i.request.method===\"wc_sessionRequest\").forEach(i=>{const r=i.request.id,o=R(\"session_request\",r);if(this.events.listenerCount(o)===0)throw new Error(`emitting ${o} without any listeners`);this.events.emit(R(\"session_request\",i.request.id),{error:t})})}),c(this,\"processSessionRequestQueue\",()=>{if(this.sessionRequestQueue.state===$.active){this.client.logger.info(\"session request queue is already active.\");return}const e=this.sessionRequestQueue.queue[0];if(!e){this.client.logger.info(\"session request queue is empty.\");return}try{this.sessionRequestQueue.state=$.active,this.emitSessionRequest(e)}catch(t){this.client.logger.error(t)}}),c(this,\"emitSessionRequest\",e=>{this.client.events.emit(\"session_request\",e)}),c(this,\"onPairingCreated\",e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;const t=this.client.proposal.getAll().find(s=>s.pairingTopic===e.topic);t&&this.onSessionProposeRequest({topic:e.topic,payload:ye(\"wc_sessionPropose\",b(v({},t),{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties,scopedProperties:t.scopedProperties}),t.id)})}),c(this,\"isValidConnect\",async e=>{if(!M(e)){const{message:l}=y(\"MISSING_OR_INVALID\",`connect() params: ${JSON.stringify(e)}`);throw new Error(l)}const{pairingTopic:t,requiredNamespaces:s,optionalNamespaces:i,sessionProperties:r,scopedProperties:o,relays:a}=e;if(X(t)||await this.isValidPairingTopic(t),!Yt(a,!0)){const{message:l}=y(\"MISSING_OR_INVALID\",`connect() relays: ${a}`);throw new Error(l)}if(!X(s)&&ot(s)!==0){const l=\"requiredNamespaces are deprecated and are automatically assigned to optionalNamespaces\";[\"fatal\",\"error\",\"silent\"].includes(this.client.logger.level)?console.warn(l):this.client.logger.warn(l),this.validateNamespaces(s,\"requiredNamespaces\")}if(!X(i)&&ot(i)!==0&&this.validateNamespaces(i,\"optionalNamespaces\"),X(r)||this.validateSessionProps(r,\"sessionProperties\"),!X(o)){this.validateSessionProps(o,\"scopedProperties\");const l=Object.keys(s||{}).concat(Object.keys(i||{}));if(!Object.keys(o).every(p=>l.includes(p)))throw new Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(o)}, required/optional namespaces: ${JSON.stringify(l)}`)}}),c(this,\"validateNamespaces\",(e,t)=>{const s=Xt(e,\"connect()\",t);if(s)throw new Error(s.message)}),c(this,\"isValidApprove\",async e=>{if(!M(e))throw new Error(y(\"MISSING_OR_INVALID\",`approve() params: ${e}`).message);const{id:t,namespaces:s,relayProtocol:i,sessionProperties:r,scopedProperties:o}=e;this.checkRecentlyDeleted(t),await this.isValidProposalId(t);const a=this.client.proposal.get(t),l=Ce(s,\"approve()\");if(l)throw new Error(l.message);const p=at(a.requiredNamespaces,s,\"approve()\");if(p)throw new Error(p.message);if(!Y(i,!0)){const{message:h}=y(\"MISSING_OR_INVALID\",`approve() relayProtocol: ${i}`);throw new Error(h)}if(X(r)||this.validateSessionProps(r,\"sessionProperties\"),!X(o)){this.validateSessionProps(o,\"scopedProperties\");const h=new Set(Object.keys(s));if(!Object.keys(o).every(u=>h.has(u)))throw new Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(o)}, approved namespaces: ${Array.from(h).join(\", \")}`)}}),c(this,\"isValidReject\",async e=>{if(!M(e)){const{message:i}=y(\"MISSING_OR_INVALID\",`reject() params: ${e}`);throw new Error(i)}const{id:t,reason:s}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!Jt(s)){const{message:i}=y(\"MISSING_OR_INVALID\",`reject() reason: ${JSON.stringify(s)}`);throw new Error(i)}}),c(this,\"isValidSessionSettleRequest\",e=>{if(!M(e)){const{message:l}=y(\"MISSING_OR_INVALID\",`onSessionSettleRequest() params: ${e}`);throw new Error(l)}const{relay:t,controller:s,namespaces:i,expiry:r}=e;if(!Bt(t)){const{message:l}=y(\"MISSING_OR_INVALID\",\"onSessionSettleRequest() relay protocol should be a string\");throw new Error(l)}const o=Wt(s,\"onSessionSettleRequest()\");if(o)throw new Error(o.message);const a=Ce(i,\"onSessionSettleRequest()\");if(a)throw new Error(a.message);if(Z(r)){const{message:l}=y(\"EXPIRED\",\"onSessionSettleRequest()\");throw new Error(l)}}),c(this,\"isValidUpdate\",async e=>{if(!M(e)){const{message:a}=y(\"MISSING_OR_INVALID\",`update() params: ${e}`);throw new Error(a)}const{topic:t,namespaces:s}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const i=this.client.session.get(t),r=Ce(s,\"update()\");if(r)throw new Error(r.message);const o=at(i.requiredNamespaces,s,\"update()\");if(o)throw new Error(o.message)}),c(this,\"isValidExtend\",async e=>{if(!M(e)){const{message:s}=y(\"MISSING_OR_INVALID\",`extend() params: ${e}`);throw new Error(s)}const{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)}),c(this,\"isValidRequest\",async e=>{if(!M(e)){const{message:a}=y(\"MISSING_OR_INVALID\",`request() params: ${e}`);throw new Error(a)}const{topic:t,request:s,chainId:i,expiry:r}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const{namespaces:o}=this.client.session.get(t);if(!ct(o,i)){const{message:a}=y(\"MISSING_OR_INVALID\",`request() chainId: ${i}`);throw new Error(a)}if(!Zt(s)){const{message:a}=y(\"MISSING_OR_INVALID\",`request() ${JSON.stringify(s)}`);throw new Error(a)}if(!es(o,i,s.method)){const{message:a}=y(\"MISSING_OR_INVALID\",`request() method: ${s.method}`);throw new Error(a)}if(r&&!ts(r,_e)){const{message:a}=y(\"MISSING_OR_INVALID\",`request() expiry: ${r}. Expiry must be a number (in seconds) between ${_e.min} and ${_e.max}`);throw new Error(a)}}),c(this,\"isValidRespond\",async e=>{var t;if(!M(e)){const{message:r}=y(\"MISSING_OR_INVALID\",`respond() params: ${e}`);throw new Error(r)}const{topic:s,response:i}=e;try{await this.isValidSessionTopic(s)}catch(r){throw(t=e?.response)!=null&&t.id&&this.cleanupAfterResponse(e),r}if(!ss(i)){const{message:r}=y(\"MISSING_OR_INVALID\",`respond() response: ${JSON.stringify(i)}`);throw new Error(r)}}),c(this,\"isValidPing\",async e=>{if(!M(e)){const{message:s}=y(\"MISSING_OR_INVALID\",`ping() params: ${e}`);throw new Error(s)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),c(this,\"isValidEmit\",async e=>{if(!M(e)){const{message:o}=y(\"MISSING_OR_INVALID\",`emit() params: ${e}`);throw new Error(o)}const{topic:t,event:s,chainId:i}=e;await this.isValidSessionTopic(t);const{namespaces:r}=this.client.session.get(t);if(!ct(r,i)){const{message:o}=y(\"MISSING_OR_INVALID\",`emit() chainId: ${i}`);throw new Error(o)}if(!is(s)){const{message:o}=y(\"MISSING_OR_INVALID\",`emit() event: ${JSON.stringify(s)}`);throw new Error(o)}if(!rs(r,i,s.name)){const{message:o}=y(\"MISSING_OR_INVALID\",`emit() event: ${JSON.stringify(s)}`);throw new Error(o)}}),c(this,\"isValidDisconnect\",async e=>{if(!M(e)){const{message:s}=y(\"MISSING_OR_INVALID\",`disconnect() params: ${e}`);throw new Error(s)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),c(this,\"isValidAuthenticate\",e=>{const{chains:t,uri:s,domain:i,nonce:r}=e;if(!Array.isArray(t)||t.length===0)throw new Error(\"chains is required and must be a non-empty array\");if(!Y(s,!1))throw new Error(\"uri is required parameter\");if(!Y(i,!1))throw new Error(\"domain is required parameter\");if(!Y(r,!1))throw new Error(\"nonce is required parameter\");if([...new Set(t.map(a=>Ae(a).namespace))].length>1)throw new Error(\"Multi-namespace requests are not supported. Please request single namespace only.\");const{namespace:o}=Ae(t[0]);if(o!==\"eip155\")throw new Error(\"Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.\")}),c(this,\"getVerifyContext\",async e=>{const{attestationId:t,hash:s,encryptedId:i,metadata:r,transportType:o}=e,a={verified:{verifyUrl:r.verifyUrl||Ot,validation:\"UNKNOWN\",origin:r.url||\"\"}};try{if(o===P.link_mode){const p=this.getAppLinkIfEnabled(r,o);return a.verified.validation=p&&new URL(p).origin===new URL(r.url).origin?\"VALID\":\"INVALID\",a}const l=await this.client.core.verify.resolve({attestationId:t,hash:s,encryptedId:i,verifyUrl:r.verifyUrl});l&&(a.verified.origin=l.origin,a.verified.isScam=l.isScam,a.verified.validation=l.origin===new URL(r.url).origin?\"VALID\":\"INVALID\")}catch(l){this.client.logger.warn(l)}return this.client.logger.debug(`Verify context: ${JSON.stringify(a)}`),a}),c(this,\"validateSessionProps\",(e,t)=>{Object.values(e).forEach((s,i)=>{if(s==null){const{message:r}=y(\"MISSING_OR_INVALID\",`${t} must contain an existing value for each key. Received: ${s} for key ${Object.keys(e)[i]}`);throw new Error(r)}})}),c(this,\"getPendingAuthRequest\",e=>{const t=this.client.auth.requests.get(e);return typeof t==\"object\"?t:void 0}),c(this,\"addToRecentlyDeleted\",(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let s=0;const i=this.recentlyDeletedLimit/2;for(const r of this.recentlyDeletedMap.keys()){if(s++>=i)break;this.recentlyDeletedMap.delete(r)}}}),c(this,\"checkRecentlyDeleted\",e=>{const t=this.recentlyDeletedMap.get(e);if(t){const{message:s}=y(\"MISSING_OR_INVALID\",`Record was recently deleted - ${t}: ${e}`);throw new Error(s)}}),c(this,\"isLinkModeEnabled\",(e,t)=>{var s,i,r,o,a,l,p,h,u;return!e||t!==P.link_mode?!1:((i=(s=this.client.metadata)==null?void 0:s.redirect)==null?void 0:i.linkMode)===!0&&((o=(r=this.client.metadata)==null?void 0:r.redirect)==null?void 0:o.universal)!==void 0&&((l=(a=this.client.metadata)==null?void 0:a.redirect)==null?void 0:l.universal)!==\"\"&&((p=e?.redirect)==null?void 0:p.universal)!==void 0&&((h=e?.redirect)==null?void 0:h.universal)!==\"\"&&((u=e?.redirect)==null?void 0:u.linkMode)===!0&&this.client.core.linkModeSupportedApps.includes(e.redirect.universal)&&typeof(global==null?void 0:global.Linking)<\"u\"}),c(this,\"getAppLinkIfEnabled\",(e,t)=>{var s;return this.isLinkModeEnabled(e,t)?(s=e?.redirect)==null?void 0:s.universal:void 0}),c(this,\"handleLinkModeMessage\",({url:e})=>{if(!e||!e.includes(\"wc_ev\")||!e.includes(\"topic\"))return;const t=lt(e,\"topic\")||\"\",s=decodeURIComponent(lt(e,\"wc_ev\")||\"\"),i=this.client.session.keys.includes(t);i&&this.client.session.update(t,{transportType:P.link_mode}),this.client.core.dispatchEnvelope({topic:t,message:s,sessionExists:i})}),c(this,\"registerLinkModeListeners\",async()=>{var e;if(ns()||os()&&(e=this.client.metadata.redirect)!=null&&e.linkMode){const t=global==null?void 0:global.Linking;if(typeof t<\"u\"){t.addEventListener(\"url\",this.handleLinkModeMessage,this.client.name);const s=await t.getInitialURL();s&&setTimeout(()=>{this.handleLinkModeMessage({url:s})},50)}}}),c(this,\"shouldSetTVF\",(e,t)=>{if(!t||e!==\"wc_sessionRequest\")return!1;const{request:s}=t;return Object.keys(Ke).includes(s.method)}),c(this,\"getTVFParams\",(e,t,s)=>{var i,r;try{const o=t.request.method,a=this.extractTxHashesFromResult(o,s);return b(v({correlationId:e,rpcMethods:[o],chainId:t.chainId},this.isValidContractData(t.request.params)&&{contractAddresses:[(r=(i=t.request.params)==null?void 0:i[0])==null?void 0:r.to]}),{txHashes:a})}catch(o){this.client.logger.warn(\"Error getting TVF params\",o)}return{}}),c(this,\"isValidContractData\",e=>{var t;if(!e)return!1;try{const s=e?.data||((t=e?.[0])==null?void 0:t.data);if(!s.startsWith(\"0x\"))return!1;const i=s.slice(2);return/^[0-9a-fA-F]*$/.test(i)?i.length%2===0:!1}catch{}return!1}),c(this,\"extractTxHashesFromResult\",(e,t)=>{try{const s=Ke[e];if(typeof t==\"string\")return[t];const i=t[s.key];if(as(i))return e===\"solana_signAllTransactions\"?i.map(r=>cs(r)):i;if(typeof i==\"string\")return[i]}catch(s){this.client.logger.warn(\"Error extracting tx hashes from result\",s)}return[]})}async processPendingMessageEvents(){try{const n=this.client.session.keys,e=this.client.core.relayer.messages.getWithoutAck(n);for(const[t,s]of Object.entries(e))for(const i of s)try{await this.onProviderMessageEvent({topic:t,message:i,publishedAt:Date.now()})}catch{this.client.logger.warn(`Error processing pending message event for topic: ${t}, message: ${i}`)}}catch(n){this.client.logger.warn(\"processPendingMessageEvents failed\",n)}}isInitialized(){if(!this.initialized){const{message:n}=y(\"NOT_INITIALIZED\",this.name);throw new Error(n)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(Xe.message,n=>{this.onProviderMessageEvent(n)})}async onRelayMessage(n){const{topic:e,message:t,attestation:s,transportType:i}=n,{publicKey:r}=this.client.auth.authKeys.keys.includes(ce)?this.client.auth.authKeys.get(ce):{responseTopic:void 0,publicKey:void 0};try{const o=await this.client.core.crypto.decode(e,t,{receiverPublicKey:r,encoding:i===P.link_mode?ne:de});ds(o)?(this.client.core.history.set(e,o),await this.onRelayEventRequest({topic:e,payload:o,attestation:s,transportType:i,encryptedId:W(t)})):us(o)?(await this.client.core.history.resolve(o),await this.onRelayEventResponse({topic:e,payload:o,transportType:i}),this.client.core.history.delete(e,o.id)):await this.onRelayEventUnknownPayload({topic:e,payload:o,transportType:i}),await this.client.core.relayer.messages.ack(e,t)}catch(o){this.client.logger.error(o)}}registerExpirerEvents(){this.client.core.expirer.on(Tt.expired,async n=>{const{topic:e,id:t}=Mt(n.target);if(t&&this.client.pendingRequest.keys.includes(t))return await this.deletePendingSessionRequest(t,y(\"EXPIRED\"),!0);if(t&&this.client.auth.requests.keys.includes(t))return await this.deletePendingAuthRequest(t,y(\"EXPIRED\"),!0);e?this.client.session.keys.includes(e)&&(await this.deleteSession({topic:e,expirerHasDeleted:!0}),this.client.events.emit(\"session_expire\",{topic:e})):t&&(await this.deleteProposal(t,!0),this.client.events.emit(\"proposal_expire\",{id:t}))})}registerPairingEvents(){this.client.core.pairing.events.on(Je.create,n=>this.onPairingCreated(n)),this.client.core.pairing.events.on(Je.delete,n=>{this.addToRecentlyDeleted(n.topic,\"pairing\")})}isValidPairingTopic(n){if(!Y(n,!1)){const{message:e}=y(\"MISSING_OR_INVALID\",`pairing topic should be a string: ${n}`);throw new Error(e)}if(!this.client.core.pairing.pairings.keys.includes(n)){const{message:e}=y(\"NO_MATCHING_KEY\",`pairing topic doesn't exist: ${n}`);throw new Error(e)}if(Z(this.client.core.pairing.pairings.get(n).expiry)){const{message:e}=y(\"EXPIRED\",`pairing topic: ${n}`);throw new Error(e)}}async isValidSessionTopic(n){if(!Y(n,!1)){const{message:e}=y(\"MISSING_OR_INVALID\",`session topic should be a string: ${n}`);throw new Error(e)}if(this.checkRecentlyDeleted(n),!this.client.session.keys.includes(n)){const{message:e}=y(\"NO_MATCHING_KEY\",`session topic doesn't exist: ${n}`);throw new Error(e)}if(Z(this.client.session.get(n).expiry)){await this.deleteSession({topic:n});const{message:e}=y(\"EXPIRED\",`session topic: ${n}`);throw new Error(e)}if(!this.client.core.crypto.keychain.has(n)){const{message:e}=y(\"MISSING_OR_INVALID\",`session topic does not exist in keychain: ${n}`);throw await this.deleteSession({topic:n}),new Error(e)}}async isValidSessionOrPairingTopic(n){if(this.checkRecentlyDeleted(n),this.client.session.keys.includes(n))await this.isValidSessionTopic(n);else if(this.client.core.pairing.pairings.keys.includes(n))this.isValidPairingTopic(n);else if(Y(n,!1)){const{message:e}=y(\"NO_MATCHING_KEY\",`session or pairing topic doesn't exist: ${n}`);throw new Error(e)}else{const{message:e}=y(\"MISSING_OR_INVALID\",`session or pairing topic should be a string: ${n}`);throw new Error(e)}}async isValidProposalId(n){if(!$t(n)){const{message:e}=y(\"MISSING_OR_INVALID\",`proposal id should be a number: ${n}`);throw new Error(e)}if(!this.client.proposal.keys.includes(n)){const{message:e}=y(\"NO_MATCHING_KEY\",`proposal id doesn't exist: ${n}`);throw new Error(e)}if(Z(this.client.proposal.get(n).expiryTimestamp)){await this.deleteProposal(n);const{message:e}=y(\"EXPIRED\",`proposal id: ${n}`);throw new Error(e)}}}class Os extends B{constructor(n,e){super(n,e,pt,we),this.core=n,this.logger=e}}class St extends B{constructor(n,e){super(n,e,ht,we),this.core=n,this.logger=e}}class bs extends B{constructor(n,e){super(n,e,ut,we,t=>t.id),this.core=n,this.logger=e}}class As extends B{constructor(n,e){super(n,e,mt,ae,()=>ce),this.core=n,this.logger=e}}class xs extends B{constructor(n,e){super(n,e,_t,ae),this.core=n,this.logger=e}}class Cs extends B{constructor(n,e){super(n,e,Et,ae,t=>t.id),this.core=n,this.logger=e}}var Vs=Object.defineProperty,Ds=(S,n,e)=>n in S?Vs(S,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):S[n]=e,Ge=(S,n,e)=>Ds(S,typeof n!=\"symbol\"?n+\"\":n,e);class Ls{constructor(n,e){this.core=n,this.logger=e,Ge(this,\"authKeys\"),Ge(this,\"pairingTopics\"),Ge(this,\"requests\"),this.authKeys=new As(this.core,this.logger),this.pairingTopics=new xs(this.core,this.logger),this.requests=new Cs(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}var ks=Object.defineProperty,Ms=(S,n,e)=>n in S?ks(S,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):S[n]=e,E=(S,n,e)=>Ms(S,typeof n!=\"symbol\"?n+\"\":n,e);class Ee extends Lt{constructor(n){super(n),E(this,\"protocol\",De),E(this,\"version\",Le),E(this,\"name\",me.name),E(this,\"metadata\"),E(this,\"core\"),E(this,\"logger\"),E(this,\"events\",new hs),E(this,\"engine\"),E(this,\"session\"),E(this,\"proposal\"),E(this,\"pendingRequest\"),E(this,\"auth\"),E(this,\"signConfig\"),E(this,\"on\",(t,s)=>this.events.on(t,s)),E(this,\"once\",(t,s)=>this.events.once(t,s)),E(this,\"off\",(t,s)=>this.events.off(t,s)),E(this,\"removeListener\",(t,s)=>this.events.removeListener(t,s)),E(this,\"removeAllListeners\",t=>this.events.removeAllListeners(t)),E(this,\"connect\",async t=>{try{return await this.engine.connect(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"pair\",async t=>{try{return await this.engine.pair(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"approve\",async t=>{try{return await this.engine.approve(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"reject\",async t=>{try{return await this.engine.reject(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"update\",async t=>{try{return await this.engine.update(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"extend\",async t=>{try{return await this.engine.extend(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"request\",async t=>{try{return await this.engine.request(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"respond\",async t=>{try{return await this.engine.respond(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"ping\",async t=>{try{return await this.engine.ping(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"emit\",async t=>{try{return await this.engine.emit(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"disconnect\",async t=>{try{return await this.engine.disconnect(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"find\",t=>{try{return this.engine.find(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"getPendingSessionRequests\",()=>{try{return this.engine.getPendingSessionRequests()}catch(t){throw this.logger.error(t.message),t}}),E(this,\"authenticate\",async(t,s)=>{try{return await this.engine.authenticate(t,s)}catch(i){throw this.logger.error(i.message),i}}),E(this,\"formatAuthMessage\",t=>{try{return this.engine.formatAuthMessage(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"approveSessionAuthenticate\",async t=>{try{return await this.engine.approveSessionAuthenticate(t)}catch(s){throw this.logger.error(s.message),s}}),E(this,\"rejectSessionAuthenticate\",async t=>{try{return await this.engine.rejectSessionAuthenticate(t)}catch(s){throw this.logger.error(s.message),s}}),this.name=n?.name||me.name,this.metadata=ls(n?.metadata),this.signConfig=n?.signConfig;const e=typeof n?.logger<\"u\"&&typeof n?.logger!=\"string\"?n.logger:At(xt({level:n?.logger||me.logger}));this.core=n?.core||new bt(n),this.logger=Ct(e,this.name),this.session=new St(this.core,this.logger),this.proposal=new Os(this.core,this.logger),this.pendingRequest=new bs(this.core,this.logger),this.engine=new Ns(this),this.auth=new Ls(this.core,this.logger)}static async init(n){const e=new Ee(n);return await e.initialize(),e}get context(){return Vt(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace(\"Initialized\");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info(\"SignClient Initialization Success\"),setTimeout(()=>{this.engine.processRelayMessageCache()},Oe(Ze))}catch(n){throw this.logger.info(\"SignClient Initialization Failure\"),this.logger.error(n.message),n}}}const $s=St,Ks=Ee;export{wt as AUTH_CONTEXT,mt as AUTH_KEYS_CONTEXT,_t as AUTH_PAIRING_TOPIC_CONTEXT,yt as AUTH_PROTOCOL,ce as AUTH_PUBLIC_KEY_NAME,Et as AUTH_REQUEST_CONTEXT,ae as AUTH_STORAGE_PREFIX,Rs as AUTH_VERSION,dt as ENGINE_CONTEXT,$ as ENGINE_QUEUE_STATES,N as ENGINE_RPC_OPTS,Es as HISTORY_CONTEXT,_s as HISTORY_EVENTS,fs as HISTORY_STORAGE_VERSION,gt as METHODS_TO_VERIFY,pt as PROPOSAL_CONTEXT,Ss as PROPOSAL_EXPIRY,$e as PROPOSAL_EXPIRY_MESSAGE,ut as REQUEST_CONTEXT,ht as SESSION_CONTEXT,J as SESSION_EXPIRY,_e as SESSION_REQUEST_EXPIRY_BOUNDARIES,ke as SIGN_CLIENT_CONTEXT,me as SIGN_CLIENT_DEFAULT,ws as SIGN_CLIENT_EVENTS,De as SIGN_CLIENT_PROTOCOL,ms as SIGN_CLIENT_STORAGE_OPTIONS,we as SIGN_CLIENT_STORAGE_PREFIX,Le as SIGN_CLIENT_VERSION,$s as SessionStore,Ks as SignClient,Ke as TVF_METHODS,Me as WALLETCONNECT_DEEPLINK_CHOICE,Ee as default};\n//# sourceMappingURL=index.es.js.map\n","import $t from\"@walletconnect/sign-client\";import{isValidObject as G,isCaipNamespace as Z,parseNamespaceKey as _,mergeArrays as J,parseChainId as T,getSdkError as tt,isValidArray as z}from\"@walletconnect/utils\";import{pino as Ot,getDefaultLoggerOptions as At}from\"@walletconnect/logger\";import g,{HttpConnection as Ct}from\"@walletconnect/jsonrpc-http-connection\";import{JsonRpcProvider as f}from\"@walletconnect/jsonrpc-provider\";import{formatJsonRpcRequest as Ht,formatJsonRpcResult as Et}from\"@walletconnect/jsonrpc-utils\";import Nt from\"events\";const et=\"error\",St=\"wss://relay.walletconnect.org\",Dt=\"wc\",qt=\"universal_provider\",U=`${Dt}@2:${qt}:`,st=\"https://rpc.walletconnect.org/v1/\",I=\"generic\",jt=`${st}bundler`,u={DEFAULT_CHAIN_CHANGED:\"default_chain_changed\"};function Rt(){}function k(s){return s==null||typeof s!=\"object\"&&typeof s!=\"function\"}function W(s){return ArrayBuffer.isView(s)&&!(s instanceof DataView)}function _t(s){if(k(s))return s;if(Array.isArray(s)||W(s)||s instanceof ArrayBuffer||typeof SharedArrayBuffer<\"u\"&&s instanceof SharedArrayBuffer)return s.slice(0);const t=Object.getPrototypeOf(s),e=t.constructor;if(s instanceof Date||s instanceof Map||s instanceof Set)return new e(s);if(s instanceof RegExp){const i=new e(s);return i.lastIndex=s.lastIndex,i}if(s instanceof DataView)return new e(s.buffer.slice(0));if(s instanceof Error){const i=new e(s.message);return i.stack=s.stack,i.name=s.name,i.cause=s.cause,i}if(typeof File<\"u\"&&s instanceof File)return new e([s],s.name,{type:s.type,lastModified:s.lastModified});if(typeof s==\"object\"){const i=Object.create(t);return Object.assign(i,s)}return s}function it(s){return typeof s==\"object\"&&s!==null}function rt(s){return Object.getOwnPropertySymbols(s).filter(t=>Object.prototype.propertyIsEnumerable.call(s,t))}function nt(s){return s==null?s===void 0?\"[object Undefined]\":\"[object Null]\":Object.prototype.toString.call(s)}const Ut=\"[object RegExp]\",at=\"[object String]\",ct=\"[object Number]\",ot=\"[object Boolean]\",ht=\"[object Arguments]\",Ft=\"[object Symbol]\",Lt=\"[object Date]\",Mt=\"[object Map]\",xt=\"[object Set]\",Bt=\"[object Array]\",Gt=\"[object ArrayBuffer]\",Jt=\"[object Object]\",zt=\"[object DataView]\",kt=\"[object Uint8Array]\",Wt=\"[object Uint8ClampedArray]\",Kt=\"[object Uint16Array]\",Vt=\"[object Uint32Array]\",Xt=\"[object Int8Array]\",Yt=\"[object Int16Array]\",Qt=\"[object Int32Array]\",Zt=\"[object Float32Array]\",Tt=\"[object Float64Array]\";function te(s,t){return $(s,void 0,s,new Map,t)}function $(s,t,e,i=new Map,n=void 0){const a=n?.(s,t,e,i);if(a!=null)return a;if(k(s))return s;if(i.has(s))return i.get(s);if(Array.isArray(s)){const r=new Array(s.length);i.set(s,r);for(let c=0;c<s.length;c++)r[c]=$(s[c],c,e,i,n);return Object.hasOwn(s,\"index\")&&(r.index=s.index),Object.hasOwn(s,\"input\")&&(r.input=s.input),r}if(s instanceof Date)return new Date(s.getTime());if(s instanceof RegExp){const r=new RegExp(s.source,s.flags);return r.lastIndex=s.lastIndex,r}if(s instanceof Map){const r=new Map;i.set(s,r);for(const[c,o]of s)r.set(c,$(o,c,e,i,n));return r}if(s instanceof Set){const r=new Set;i.set(s,r);for(const c of s)r.add($(c,void 0,e,i,n));return r}if(typeof Buffer<\"u\"&&Buffer.isBuffer(s))return s.subarray();if(W(s)){const r=new(Object.getPrototypeOf(s)).constructor(s.length);i.set(s,r);for(let c=0;c<s.length;c++)r[c]=$(s[c],c,e,i,n);return r}if(s instanceof ArrayBuffer||typeof SharedArrayBuffer<\"u\"&&s instanceof SharedArrayBuffer)return s.slice(0);if(s instanceof DataView){const r=new DataView(s.buffer.slice(0),s.byteOffset,s.byteLength);return i.set(s,r),y(r,s,e,i,n),r}if(typeof File<\"u\"&&s instanceof File){const r=new File([s],s.name,{type:s.type});return i.set(s,r),y(r,s,e,i,n),r}if(s instanceof Blob){const r=new Blob([s],{type:s.type});return i.set(s,r),y(r,s,e,i,n),r}if(s instanceof Error){const r=new s.constructor;return i.set(s,r),r.message=s.message,r.name=s.name,r.stack=s.stack,r.cause=s.cause,y(r,s,e,i,n),r}if(typeof s==\"object\"&&ee(s)){const r=Object.create(Object.getPrototypeOf(s));return i.set(s,r),y(r,s,e,i,n),r}return s}function y(s,t,e=s,i,n){const a=[...Object.keys(t),...rt(t)];for(let r=0;r<a.length;r++){const c=a[r],o=Object.getOwnPropertyDescriptor(s,c);(o==null||o.writable)&&(s[c]=$(t[c],c,e,i,n))}}function ee(s){switch(nt(s)){case ht:case Bt:case Gt:case zt:case ot:case Lt:case Zt:case Tt:case Xt:case Yt:case Qt:case Mt:case ct:case Jt:case Ut:case xt:case at:case Ft:case kt:case Wt:case Kt:case Vt:return!0;default:return!1}}function se(s,t){return te(s,(e,i,n,a)=>{const r=t?.(e,i,n,a);if(r!=null)return r;if(typeof s==\"object\")switch(Object.prototype.toString.call(s)){case ct:case at:case ot:{const c=new s.constructor(s?.valueOf());return y(c,s),c}case ht:{const c={};return y(c,s),c.length=s.length,c[Symbol.iterator]=s[Symbol.iterator],c}default:return}})}function pt(s){return se(s)}function dt(s){return s!==null&&typeof s==\"object\"&&nt(s)===\"[object Arguments]\"}function ie(s){return W(s)}function re(s){if(typeof s!=\"object\"||s==null)return!1;if(Object.getPrototypeOf(s)===null)return!0;if(Object.prototype.toString.call(s)!==\"[object Object]\"){const e=s[Symbol.toStringTag];return e==null||!Object.getOwnPropertyDescriptor(s,Symbol.toStringTag)?.writable?!1:s.toString()===`[object ${e}]`}let t=s;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(s)===t}function ne(s,...t){const e=t.slice(0,-1),i=t[t.length-1];let n=s;for(let a=0;a<e.length;a++){const r=e[a];n=F(n,r,i,new Map)}return n}function F(s,t,e,i){if(k(s)&&(s=Object(s)),t==null||typeof t!=\"object\")return s;if(i.has(t))return _t(i.get(t));if(i.set(t,s),Array.isArray(t)){t=t.slice();for(let a=0;a<t.length;a++)t[a]=t[a]??void 0}const n=[...Object.keys(t),...rt(t)];for(let a=0;a<n.length;a++){const r=n[a];let c=t[r],o=s[r];if(dt(c)&&(c={...c}),dt(o)&&(o={...o}),typeof Buffer<\"u\"&&Buffer.isBuffer(c)&&(c=pt(c)),Array.isArray(c))if(typeof o==\"object\"&&o!=null){const w=[],v=Reflect.ownKeys(o);for(let P=0;P<v.length;P++){const p=v[P];w[p]=o[p]}o=w}else o=[];const m=e(o,c,r,s,t,i);m!=null?s[r]=m:Array.isArray(c)||it(o)&&it(c)?s[r]=F(o,c,e,i):o==null&&re(c)?s[r]=F({},c,e,i):o==null&&ie(c)?s[r]=pt(c):(o===void 0||c!==void 0)&&(s[r]=c)}return s}function ae(s,...t){return ne(s,...t,Rt)}var ce=Object.defineProperty,oe=Object.defineProperties,he=Object.getOwnPropertyDescriptors,ut=Object.getOwnPropertySymbols,pe=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable,lt=(s,t,e)=>t in s?ce(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,L=(s,t)=>{for(var e in t||(t={}))pe.call(t,e)&&lt(s,e,t[e]);if(ut)for(var e of ut(t))de.call(t,e)&&lt(s,e,t[e]);return s},ue=(s,t)=>oe(s,he(t));function d(s,t,e){var i;const n=T(s);return((i=t.rpcMap)==null?void 0:i[n.reference])||`${st}?chainId=${n.namespace}:${n.reference}&projectId=${e}`}function b(s){return s.includes(\":\")?s.split(\":\")[1]:s}function ft(s){return s.map(t=>`${t.split(\":\")[0]}:${t.split(\":\")[1]}`)}function le(s,t){const e=Object.keys(t.namespaces).filter(n=>n.includes(s));if(!e.length)return[];const i=[];return e.forEach(n=>{const a=t.namespaces[n].accounts;i.push(...a)}),i}function M(s={},t={}){const e=mt(s),i=mt(t);return ae(e,i)}function mt(s){var t,e,i,n,a;const r={};if(!G(s))return r;for(const[c,o]of Object.entries(s)){const m=Z(c)?[c]:o.chains,w=o.methods||[],v=o.events||[],P=o.rpcMap||{},p=_(c);r[p]=ue(L(L({},r[p]),o),{chains:J(m,(t=r[p])==null?void 0:t.chains),methods:J(w,(e=r[p])==null?void 0:e.methods),events:J(v,(i=r[p])==null?void 0:i.events)}),(G(P)||G(((n=r[p])==null?void 0:n.rpcMap)||{}))&&(r[p].rpcMap=L(L({},P),(a=r[p])==null?void 0:a.rpcMap))}return r}function vt(s){return s.includes(\":\")?s.split(\":\")[2]:s}function gt(s){const t={};for(const[e,i]of Object.entries(s)){const n=i.methods||[],a=i.events||[],r=i.accounts||[],c=Z(e)?[e]:i.chains?i.chains:ft(i.accounts);t[e]={chains:c,methods:n,events:a,accounts:r}}return t}function K(s){return typeof s==\"number\"?s:s.includes(\"0x\")?parseInt(s,16):(s=s.includes(\":\")?s.split(\":\")[1]:s,isNaN(Number(s))?s:Number(s))}const Pt={},h=s=>Pt[s],V=(s,t)=>{Pt[s]=t};var fe=Object.defineProperty,me=(s,t,e)=>t in s?fe(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,O=(s,t,e)=>me(s,typeof t!=\"symbol\"?t+\"\":t,e);class ve{constructor(t){O(this,\"name\",\"polkadot\"),O(this,\"client\"),O(this,\"httpProviders\"),O(this,\"events\"),O(this,\"namespace\"),O(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getAccounts(){const t=this.namespace.accounts;return t?t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2])||[]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;const n=b(e);t[n]=this.createHttpProvider(n,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new g(i,h(\"disableProviderPing\")))}}var ge=Object.defineProperty,Pe=Object.defineProperties,we=Object.getOwnPropertyDescriptors,wt=Object.getOwnPropertySymbols,ye=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable,X=(s,t,e)=>t in s?ge(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,yt=(s,t)=>{for(var e in t||(t={}))ye.call(t,e)&&X(s,e,t[e]);if(wt)for(var e of wt(t))be.call(t,e)&&X(s,e,t[e]);return s},bt=(s,t)=>Pe(s,we(t)),A=(s,t,e)=>X(s,typeof t!=\"symbol\"?t+\"\":t,e);class Ie{constructor(t){A(this,\"name\",\"eip155\"),A(this,\"client\"),A(this,\"chainId\"),A(this,\"namespace\"),A(this,\"httpProviders\"),A(this,\"events\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(t){switch(t.request.method){case\"eth_requestAccounts\":return this.getAccounts();case\"eth_accounts\":return this.getAccounts();case\"wallet_switchEthereumChain\":return await this.handleSwitchChain(t);case\"eth_chainId\":return parseInt(this.getDefaultChain());case\"wallet_getCapabilities\":return await this.getCapabilities(t);case\"wallet_getCallsStatus\":return await this.getCallStatus(t)}return this.namespace.methods.includes(t.request.method)?await this.client.request(t):this.getHttpProvider().request(t.request)}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(parseInt(t),e),this.chainId=parseInt(t),this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}createHttpProvider(t,e){const i=e||d(`${this.name}:${t}`,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new Ct(i,h(\"disableProviderPing\")))}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;const n=parseInt(b(e));t[n]=this.createHttpProvider(n,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}getHttpProvider(){const t=this.chainId,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}async handleSwitchChain(t){var e,i;let n=t.request.params?(e=t.request.params[0])==null?void 0:e.chainId:\"0x0\";n=n.startsWith(\"0x\")?n:`0x${n}`;const a=parseInt(n,16);if(this.isChainApproved(a))this.setDefaultChain(`${a}`);else if(this.namespace.methods.includes(\"wallet_switchEthereumChain\"))await this.client.request({topic:t.topic,request:{method:t.request.method,params:[{chainId:n}]},chainId:(i=this.namespace.chains)==null?void 0:i[0]}),this.setDefaultChain(`${a}`);else throw new Error(`Failed to switch to chain 'eip155:${a}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(t){return this.namespace.chains.includes(`${this.name}:${t}`)}async getCapabilities(t){var e,i,n,a,r;const c=(i=(e=t.request)==null?void 0:e.params)==null?void 0:i[0],o=((a=(n=t.request)==null?void 0:n.params)==null?void 0:a[1])||[],m=`${c}${o.join(\",\")}`;if(!c)throw new Error(\"Missing address parameter in `wallet_getCapabilities` request\");const w=this.client.session.get(t.topic),v=((r=w?.sessionProperties)==null?void 0:r.capabilities)||{};if(v!=null&&v[m])return v?.[m];const P=await this.client.request(t);try{await this.client.session.update(t.topic,{sessionProperties:bt(yt({},w.sessionProperties||{}),{capabilities:bt(yt({},v||{}),{[m]:P})})})}catch(p){console.warn(\"Failed to update session with capabilities\",p)}return P}async getCallStatus(t){var e,i;const n=this.client.session.get(t.topic),a=(e=n.sessionProperties)==null?void 0:e.bundler_name;if(a){const c=this.getBundlerUrl(t.chainId,a);try{return await this.getUserOperationReceipt(c,t)}catch(o){console.warn(\"Failed to fetch call status from bundler\",o,c)}}const r=(i=n.sessionProperties)==null?void 0:i.bundler_url;if(r)try{return await this.getUserOperationReceipt(r,t)}catch(c){console.warn(\"Failed to fetch call status from custom bundler\",c,r)}if(this.namespace.methods.includes(t.request.method))return await this.client.request(t);throw new Error(\"Fetching call status not approved by the wallet.\")}async getUserOperationReceipt(t,e){var i;const n=new URL(t),a=await fetch(n,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(Ht(\"eth_getUserOperationReceipt\",[(i=e.request.params)==null?void 0:i[0]]))});if(!a.ok)throw new Error(`Failed to fetch user operation receipt - ${a.status}`);return await a.json()}getBundlerUrl(t,e){return`${jt}?projectId=${this.client.core.projectId}&chainId=${t}&bundler=${e}`}}var $e=Object.defineProperty,Oe=(s,t,e)=>t in s?$e(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,C=(s,t,e)=>Oe(s,typeof t!=\"symbol\"?t+\"\":t,e);class Ae{constructor(t){C(this,\"name\",\"solana\"),C(this,\"client\"),C(this,\"httpProviders\"),C(this,\"events\"),C(this,\"namespace\"),C(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;const n=b(e);t[n]=this.createHttpProvider(n,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new g(i,h(\"disableProviderPing\")))}}var Ce=Object.defineProperty,He=(s,t,e)=>t in s?Ce(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,H=(s,t,e)=>He(s,typeof t!=\"symbol\"?t+\"\":t,e);class Ee{constructor(t){H(this,\"name\",\"cosmos\"),H(this,\"client\"),H(this,\"httpProviders\"),H(this,\"events\"),H(this,\"namespace\"),H(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;const n=b(e);t[n]=this.createHttpProvider(n,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new g(i,h(\"disableProviderPing\")))}}var Ne=Object.defineProperty,Se=(s,t,e)=>t in s?Ne(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,E=(s,t,e)=>Se(s,typeof t!=\"symbol\"?t+\"\":t,e);class De{constructor(t){E(this,\"name\",\"algorand\"),E(this,\"client\"),E(this,\"httpProviders\"),E(this,\"events\"),E(this,\"namespace\"),E(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){if(!this.httpProviders[t]){const i=e||d(`${this.name}:${t}`,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);this.setHttpProvider(t,i)}this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;t[e]=this.createHttpProvider(e,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace,this.client.core.projectId);return typeof i>\"u\"?void 0:new f(new g(i,h(\"disableProviderPing\")))}}var qe=Object.defineProperty,je=(s,t,e)=>t in s?qe(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,N=(s,t,e)=>je(s,typeof t!=\"symbol\"?t+\"\":t,e);class Re{constructor(t){N(this,\"name\",\"cip34\"),N(this,\"client\"),N(this,\"httpProviders\"),N(this,\"events\"),N(this,\"namespace\"),N(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{const i=this.getCardanoRPCUrl(e),n=b(e);t[n]=this.createHttpProvider(n,i)}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}getCardanoRPCUrl(t){const e=this.namespace.rpcMap;if(e)return e[t]}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||this.getCardanoRPCUrl(t);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new g(i,h(\"disableProviderPing\")))}}var _e=Object.defineProperty,Ue=(s,t,e)=>t in s?_e(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,S=(s,t,e)=>Ue(s,typeof t!=\"symbol\"?t+\"\":t,e);class Fe{constructor(t){S(this,\"name\",\"elrond\"),S(this,\"client\"),S(this,\"httpProviders\"),S(this,\"events\"),S(this,\"namespace\"),S(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;const n=b(e);t[n]=this.createHttpProvider(n,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new g(i,h(\"disableProviderPing\")))}}var Le=Object.defineProperty,Me=(s,t,e)=>t in s?Le(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,D=(s,t,e)=>Me(s,typeof t!=\"symbol\"?t+\"\":t,e);class xe{constructor(t){D(this,\"name\",\"multiversx\"),D(this,\"client\"),D(this,\"httpProviders\"),D(this,\"events\"),D(this,\"namespace\"),D(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;const n=b(e);t[n]=this.createHttpProvider(n,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new g(i,h(\"disableProviderPing\")))}}var Be=Object.defineProperty,Ge=(s,t,e)=>t in s?Be(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,q=(s,t,e)=>Ge(s,typeof t!=\"symbol\"?t+\"\":t,e);class Je{constructor(t){q(this,\"name\",\"near\"),q(this,\"client\"),q(this,\"httpProviders\"),q(this,\"events\"),q(this,\"namespace\"),q(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){if(this.chainId=t,!this.httpProviders[t]){const i=e||d(`${this.name}:${t}`,this.namespace);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);this.setHttpProvider(t,i)}this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2])||[]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{var i;t[e]=this.createHttpProvider(e,(i=this.namespace.rpcMap)==null?void 0:i[e])}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace);return typeof i>\"u\"?void 0:new f(new g(i,h(\"disableProviderPing\")))}}var ze=Object.defineProperty,ke=(s,t,e)=>t in s?ze(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,j=(s,t,e)=>ke(s,typeof t!=\"symbol\"?t+\"\":t,e);class We{constructor(t){j(this,\"name\",\"tezos\"),j(this,\"client\"),j(this,\"httpProviders\"),j(this,\"events\"),j(this,\"namespace\"),j(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider().request(t.request)}setDefaultChain(t,e){if(this.chainId=t,!this.httpProviders[t]){const i=e||d(`${this.name}:${t}`,this.namespace);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);this.setHttpProvider(t,i)}this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const t=this.namespace.accounts;return t?t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2])||[]:[]}createHttpProviders(){const t={};return this.namespace.chains.forEach(e=>{t[e]=this.createHttpProvider(e)}),t}getHttpProvider(){const t=`${this.name}:${this.chainId}`,e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace);return typeof i>\"u\"?void 0:new f(new g(i))}}var Ke=Object.defineProperty,Ve=(s,t,e)=>t in s?Ke(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,R=(s,t,e)=>Ve(s,typeof t!=\"symbol\"?t+\"\":t,e);class Xe{constructor(t){R(this,\"name\",I),R(this,\"client\"),R(this,\"httpProviders\"),R(this,\"events\"),R(this,\"namespace\"),R(this,\"chainId\"),this.namespace=t.namespace,this.events=h(\"events\"),this.client=h(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace.chains=[...new Set((this.namespace.chains||[]).concat(t.chains||[]))],this.namespace.accounts=[...new Set((this.namespace.accounts||[]).concat(t.accounts||[]))],this.namespace.methods=[...new Set((this.namespace.methods||[]).concat(t.methods||[]))],this.namespace.events=[...new Set((this.namespace.events||[]).concat(t.events||[]))],this.httpProviders=this.createHttpProviders()}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider(t.chainId).request(t.request)}setDefaultChain(t,e){this.httpProviders[t]||this.setHttpProvider(t,e),this.chainId=t,this.events.emit(u.DEFAULT_CHAIN_CHANGED,`${this.name}:${t}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(e=>e.split(\":\")[1]===this.chainId.toString()).map(e=>e.split(\":\")[2]))]:[]}createHttpProviders(){var t,e;const i={};return(e=(t=this.namespace)==null?void 0:t.accounts)==null||e.forEach(n=>{const a=T(n);i[`${a.namespace}:${a.reference}`]=this.createHttpProvider(n)}),i}getHttpProvider(t){const e=this.httpProviders[t];if(typeof e>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return e}setHttpProvider(t,e){const i=this.createHttpProvider(t,e);i&&(this.httpProviders[t]=i)}createHttpProvider(t,e){const i=e||d(t,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new f(new g(i,h(\"disableProviderPing\")))}}var Ye=Object.defineProperty,Qe=Object.defineProperties,Ze=Object.getOwnPropertyDescriptors,It=Object.getOwnPropertySymbols,Te=Object.prototype.hasOwnProperty,ts=Object.prototype.propertyIsEnumerable,Y=(s,t,e)=>t in s?Ye(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,x=(s,t)=>{for(var e in t||(t={}))Te.call(t,e)&&Y(s,e,t[e]);if(It)for(var e of It(t))ts.call(t,e)&&Y(s,e,t[e]);return s},Q=(s,t)=>Qe(s,Ze(t)),l=(s,t,e)=>Y(s,typeof t!=\"symbol\"?t+\"\":t,e);class B{constructor(t){l(this,\"client\"),l(this,\"namespaces\"),l(this,\"optionalNamespaces\"),l(this,\"sessionProperties\"),l(this,\"scopedProperties\"),l(this,\"events\",new Nt),l(this,\"rpcProviders\",{}),l(this,\"session\"),l(this,\"providerOpts\"),l(this,\"logger\"),l(this,\"uri\"),l(this,\"disableProviderPing\",!1),this.providerOpts=t,this.logger=typeof t?.logger<\"u\"&&typeof t?.logger!=\"string\"?t.logger:Ot(At({level:t?.logger||et})),this.disableProviderPing=t?.disableProviderPing||!1}static async init(t){const e=new B(t);return await e.initialize(),e}async request(t,e,i){const[n,a]=this.validateChain(e);if(!this.session)throw new Error(\"Please call connect() before request()\");return await this.getProvider(n).request({request:x({},t),chainId:`${n}:${a}`,topic:this.session.topic,expiry:i})}sendAsync(t,e,i,n){const a=new Date().getTime();this.request(t,i,n).then(r=>e(null,Et(a,r))).catch(r=>e(r,void 0))}async enable(){if(!this.client)throw new Error(\"Sign Client not initialized\");return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties}),await this.requestAccounts()}async disconnect(){var t;if(!this.session)throw new Error(\"Please call connect() before enable()\");await this.client.disconnect({topic:(t=this.session)==null?void 0:t.topic,reason:tt(\"USER_DISCONNECTED\")}),await this.cleanup()}async connect(t){if(!this.client)throw new Error(\"Sign Client not initialized\");if(this.setNamespaces(t),await this.cleanupPendingPairings(),!t.skipPairing)return await this.pair(t.pairingTopic)}async authenticate(t,e){if(!this.client)throw new Error(\"Sign Client not initialized\");this.setNamespaces(t),await this.cleanupPendingPairings();const{uri:i,response:n}=await this.client.authenticate(t,e);i&&(this.uri=i,this.events.emit(\"display_uri\",i));const a=await n();if(this.session=a.session,this.session){const r=gt(this.session.namespaces);this.namespaces=M(this.namespaces,r),await this.persist(\"namespaces\",this.namespaces),this.onConnect()}return a}on(t,e){this.events.on(t,e)}once(t,e){this.events.once(t,e)}removeListener(t,e){this.events.removeListener(t,e)}off(t,e){this.events.off(t,e)}get isWalletConnect(){return!0}async pair(t){const{uri:e,approval:i}=await this.client.connect({pairingTopic:t,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties});e&&(this.uri=e,this.events.emit(\"display_uri\",e));const n=await i();this.session=n;const a=gt(n.namespaces);return this.namespaces=M(this.namespaces,a),await this.persist(\"namespaces\",this.namespaces),await this.persist(\"optionalNamespaces\",this.optionalNamespaces),this.onConnect(),this.session}setDefaultChain(t,e){try{if(!this.session)return;const[i,n]=this.validateChain(t),a=this.getProvider(i);a.name===I?a.setDefaultChain(`${i}:${n}`,e):a.setDefaultChain(n,e)}catch(i){if(!/Please call connect/.test(i.message))throw i}}async cleanupPendingPairings(t={}){this.logger.info(\"Cleaning up inactive pairings...\");const e=this.client.pairing.getAll();if(z(e)){for(const i of e)t.deletePairings?this.client.core.expirer.set(i.topic,0):await this.client.core.relayer.subscriber.unsubscribe(i.topic);this.logger.info(`Inactive pairings cleared: ${e.length}`)}}abortPairingAttempt(){this.logger.warn(\"abortPairingAttempt is deprecated. This is now a no-op.\")}async checkStorage(){this.namespaces=await this.getFromStore(\"namespaces\")||{},this.optionalNamespaces=await this.getFromStore(\"optionalNamespaces\")||{},this.session&&this.createProviders()}async initialize(){this.logger.trace(\"Initialized\"),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){var t,e;if(this.client=this.providerOpts.client||await $t.init({core:this.providerOpts.core,logger:this.providerOpts.logger||et,relayUrl:this.providerOpts.relayUrl||St,projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,storage:this.providerOpts.storage,name:this.providerOpts.name,customStoragePrefix:this.providerOpts.customStoragePrefix,telemetryEnabled:this.providerOpts.telemetryEnabled}),this.providerOpts.session)try{this.session=this.client.session.get(this.providerOpts.session.topic)}catch(i){throw this.logger.error(\"Failed to get session\",i),new Error(`The provided session: ${(e=(t=this.providerOpts)==null?void 0:t.session)==null?void 0:e.topic} doesn't exist in the Sign client`)}else{const i=this.client.session.getAll();this.session=i[0]}this.logger.trace(\"SignClient Initialized\")}createProviders(){if(!this.client)throw new Error(\"Sign Client not initialized\");if(!this.session)throw new Error(\"Session not initialized. Please call connect() before enable()\");const t=[...new Set(Object.keys(this.session.namespaces).map(e=>_(e)))];V(\"client\",this.client),V(\"events\",this.events),V(\"disableProviderPing\",this.disableProviderPing),t.forEach(e=>{if(!this.session)return;const i=le(e,this.session),n=ft(i),a=M(this.namespaces,this.optionalNamespaces),r=Q(x({},a[e]),{accounts:i,chains:n});switch(e){case\"eip155\":this.rpcProviders[e]=new Ie({namespace:r});break;case\"algorand\":this.rpcProviders[e]=new De({namespace:r});break;case\"solana\":this.rpcProviders[e]=new Ae({namespace:r});break;case\"cosmos\":this.rpcProviders[e]=new Ee({namespace:r});break;case\"polkadot\":this.rpcProviders[e]=new ve({namespace:r});break;case\"cip34\":this.rpcProviders[e]=new Re({namespace:r});break;case\"elrond\":this.rpcProviders[e]=new Fe({namespace:r});break;case\"multiversx\":this.rpcProviders[e]=new xe({namespace:r});break;case\"near\":this.rpcProviders[e]=new Je({namespace:r});break;case\"tezos\":this.rpcProviders[e]=new We({namespace:r});break;default:this.rpcProviders[I]?this.rpcProviders[I].updateNamespace(r):this.rpcProviders[I]=new Xe({namespace:r})}})}registerEventListeners(){if(typeof this.client>\"u\")throw new Error(\"Sign Client is not initialized\");this.client.on(\"session_ping\",t=>{var e;const{topic:i}=t;i===((e=this.session)==null?void 0:e.topic)&&this.events.emit(\"session_ping\",t)}),this.client.on(\"session_event\",t=>{var e;const{params:i,topic:n}=t;if(n!==((e=this.session)==null?void 0:e.topic))return;const{event:a}=i;if(a.name===\"accountsChanged\"){const r=a.data;r&&z(r)&&this.events.emit(\"accountsChanged\",r.map(vt))}else if(a.name===\"chainChanged\"){const r=i.chainId,c=i.event.data,o=_(r),m=K(r)!==K(c)?`${o}:${K(c)}`:r;this.onChainChanged(m)}else this.events.emit(a.name,a.data);this.events.emit(\"session_event\",t)}),this.client.on(\"session_update\",({topic:t,params:e})=>{var i,n;if(t!==((i=this.session)==null?void 0:i.topic))return;const{namespaces:a}=e,r=(n=this.client)==null?void 0:n.session.get(t);this.session=Q(x({},r),{namespaces:a}),this.onSessionUpdate(),this.events.emit(\"session_update\",{topic:t,params:e})}),this.client.on(\"session_delete\",async t=>{var e;t.topic===((e=this.session)==null?void 0:e.topic)&&(await this.cleanup(),this.events.emit(\"session_delete\",t),this.events.emit(\"disconnect\",Q(x({},tt(\"USER_DISCONNECTED\")),{data:t.topic})))}),this.on(u.DEFAULT_CHAIN_CHANGED,t=>{this.onChainChanged(t,!0)})}getProvider(t){return this.rpcProviders[t]||this.rpcProviders[I]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(t=>{var e;this.getProvider(t).updateNamespace((e=this.session)==null?void 0:e.namespaces[t])})}setNamespaces(t){const{namespaces:e={},optionalNamespaces:i={},sessionProperties:n,scopedProperties:a}=t;this.optionalNamespaces=M(e,i),this.sessionProperties=n,this.scopedProperties=a}validateChain(t){const[e,i]=t?.split(\":\")||[\"\",\"\"];if(!this.namespaces||!Object.keys(this.namespaces).length)return[e,i];if(e&&!Object.keys(this.namespaces||{}).map(r=>_(r)).includes(e))throw new Error(`Namespace '${e}' is not configured. Please call connect() first with namespace config.`);if(e&&i)return[e,i];const n=_(Object.keys(this.namespaces)[0]),a=this.rpcProviders[n].getDefaultChain();return[n,a]}async requestAccounts(){const[t]=this.validateChain();return await this.getProvider(t).requestAccounts()}async onChainChanged(t,e=!1){if(!this.namespaces)return;const[i,n]=this.validateChain(t);if(!n)return;this.updateNamespaceChain(i,n),this.events.emit(\"chainChanged\",n);const a=this.getProvider(i).getDefaultChain();e||this.getProvider(i).setDefaultChain(n),this.emitAccountsChangedOnChainChange({namespace:i,previousChainId:a,newChainId:t}),await this.persist(\"namespaces\",this.namespaces)}emitAccountsChangedOnChainChange({namespace:t,previousChainId:e,newChainId:i}){var n,a;try{if(e===i)return;const r=(a=(n=this.session)==null?void 0:n.namespaces[t])==null?void 0:a.accounts;if(!r)return;const c=r.filter(o=>o.includes(`${i}:`)).map(vt);if(!z(c))return;this.events.emit(\"accountsChanged\",c)}catch(r){this.logger.warn(\"Failed to emit accountsChanged on chain change\",r)}}updateNamespaceChain(t,e){if(!this.namespaces)return;const i=this.namespaces[t]?t:`${t}:${e}`,n={chains:[],methods:[],events:[],defaultChain:e};this.namespaces[i]?this.namespaces[i]&&(this.namespaces[i].defaultChain=e):this.namespaces[i]=n}onConnect(){this.createProviders(),this.events.emit(\"connect\",{session:this.session})}async cleanup(){this.namespaces=void 0,this.optionalNamespaces=void 0,this.sessionProperties=void 0,await this.deleteFromStore(\"namespaces\"),await this.deleteFromStore(\"optionalNamespaces\"),await this.deleteFromStore(\"sessionProperties\"),this.session=void 0,await this.cleanupPendingPairings({deletePairings:!0}),await this.cleanupStorage()}async persist(t,e){var i;const n=((i=this.session)==null?void 0:i.topic)||\"\";await this.client.core.storage.setItem(`${U}/${t}${n}`,e)}async getFromStore(t){var e;const i=((e=this.session)==null?void 0:e.topic)||\"\";return await this.client.core.storage.getItem(`${U}/${t}${i}`)}async deleteFromStore(t){var e;const i=((e=this.session)==null?void 0:e.topic)||\"\";await this.client.core.storage.removeItem(`${U}/${t}${i}`)}async cleanupStorage(){var t;try{if(((t=this.client)==null?void 0:t.session.length)>0)return;const e=await this.client.core.storage.getKeys();for(const i of e)i.startsWith(U)&&await this.client.core.storage.removeItem(i)}catch(e){this.logger.warn(\"Failed to cleanup storage\",e)}}}const es=B;export{es as UniversalProvider,B as default};\n//# sourceMappingURL=index.es.js.map\n","import { ConnectorController } from '../controllers/ConnectorController.js';\n/**\n * Checks if the given namespace is associated with the specified connector id.\n * @param namespace - The namespace to check.\n * @param connectorId - The connector id to compare against.\n * @returns True if the namespace is associated with the connector id, false otherwise.\n */\nexport function checkNamespaceConnectorId(namespace, connectorId) {\n return ConnectorController.getConnectorId(namespace) === connectorId;\n}\n//# sourceMappingURL=ConnectorControllerUtil.js.map","import { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common';\nimport { ChainController } from '../controllers/ChainController.js';\nimport { checkNamespaceConnectorId } from './ConnectorControllerUtil.js';\n/**\n * Returns the array of chains to disconnect from the connector with the given namespace.\n * If no namespace is provided, it returns all chains.\n * @param namespace - The namespace of the connector to disconnect from.\n * @returns An array of chains to disconnect.\n */\nexport function getChainsToDisconnect(namespace) {\n const namespaces = Array.from(ChainController.state.chains.keys());\n let chains = [];\n if (namespace) {\n chains.push([namespace, ChainController.state.chains.get(namespace)]);\n if (checkNamespaceConnectorId(namespace, CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT)) {\n namespaces.forEach(ns => {\n if (ns !== namespace &&\n checkNamespaceConnectorId(ns, CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT)) {\n chains.push([ns, ChainController.state.chains.get(ns)]);\n }\n });\n }\n else if (checkNamespaceConnectorId(namespace, CommonConstantsUtil.CONNECTOR_ID.AUTH)) {\n namespaces.forEach(ns => {\n if (ns !== namespace &&\n checkNamespaceConnectorId(ns, CommonConstantsUtil.CONNECTOR_ID.AUTH)) {\n chains.push([ns, ChainController.state.chains.get(ns)]);\n }\n });\n }\n }\n else {\n chains = Array.from(ChainController.state.chains.entries());\n }\n return chains;\n}\n//# sourceMappingURL=ChainControllerUtil.js.map","export const ConstantsUtil = {\n METMASK_CONNECTOR_NAME: 'MetaMask',\n TRUST_CONNECTOR_NAME: 'Trust Wallet',\n SOLFLARE_CONNECTOR_NAME: 'Solflare',\n PHANTOM_CONNECTOR_NAME: 'Phantom',\n COIN98_CONNECTOR_NAME: 'Coin98',\n MAGIC_EDEN_CONNECTOR_NAME: 'Magic Eden',\n BACKPACK_CONNECTOR_NAME: 'Backpack',\n BITGET_CONNECTOR_NAME: 'Bitget Wallet',\n FRONTIER_CONNECTOR_NAME: 'Frontier',\n XVERSE_CONNECTOR_NAME: 'Xverse Wallet',\n LEATHER_CONNECTOR_NAME: 'Leather',\n EIP155: 'eip155',\n ADD_CHAIN_METHOD: 'wallet_addEthereumChain',\n EIP6963_ANNOUNCE_EVENT: 'eip6963:announceProvider',\n EIP6963_REQUEST_EVENT: 'eip6963:requestProvider',\n CONNECTOR_RDNS_MAP: {\n coinbaseWallet: 'com.coinbase.wallet',\n coinbaseWalletSDK: 'com.coinbase.wallet'\n },\n CONNECTOR_TYPE_EXTERNAL: 'EXTERNAL',\n CONNECTOR_TYPE_WALLET_CONNECT: 'WALLET_CONNECT',\n CONNECTOR_TYPE_INJECTED: 'INJECTED',\n CONNECTOR_TYPE_ANNOUNCED: 'ANNOUNCED',\n CONNECTOR_TYPE_AUTH: 'AUTH',\n CONNECTOR_TYPE_MULTI_CHAIN: 'MULTI_CHAIN',\n CONNECTOR_TYPE_W3M_AUTH: 'ID_AUTH'\n};\n//# sourceMappingURL=ConstantsUtil.js.map","import { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common';\nimport { ConstantsUtil } from './ConstantsUtil.js';\nexport const PresetsUtil = {\n ConnectorExplorerIds: {\n [CommonConstantsUtil.CONNECTOR_ID.COINBASE]: 'fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa',\n [CommonConstantsUtil.CONNECTOR_ID.COINBASE_SDK]: 'fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa',\n [CommonConstantsUtil.CONNECTOR_ID.SAFE]: '225affb176778569276e484e1b92637ad061b01e13a048b35a9d280c3b58970f',\n [CommonConstantsUtil.CONNECTOR_ID.LEDGER]: '19177a98252e07ddfc9af2083ba8e07ef627cb6103467ffebb3f8f4205fd7927',\n [CommonConstantsUtil.CONNECTOR_ID.OKX]: '971e689d0a5be527bac79629b4ee9b925e82208e5168b733496a09c0faed0709',\n [ConstantsUtil.METMASK_CONNECTOR_NAME]: 'c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96',\n [ConstantsUtil.TRUST_CONNECTOR_NAME]: '4622a2b2d6af1c9844944291e5e7351a6aa24cd7b23099efac1b2fd875da31a0',\n [ConstantsUtil.SOLFLARE_CONNECTOR_NAME]: '1ca0bdd4747578705b1939af023d120677c64fe6ca76add81fda36e350605e79',\n [ConstantsUtil.PHANTOM_CONNECTOR_NAME]: 'a797aa35c0fadbfc1a53e7f675162ed5226968b44a19ee3d24385c64d1d3c393',\n [ConstantsUtil.COIN98_CONNECTOR_NAME]: '2a3c89040ac3b723a1972a33a125b1db11e258a6975d3a61252cd64e6ea5ea01',\n [ConstantsUtil.MAGIC_EDEN_CONNECTOR_NAME]: '8b830a2b724a9c3fbab63af6f55ed29c9dfa8a55e732dc88c80a196a2ba136c6',\n [ConstantsUtil.BACKPACK_CONNECTOR_NAME]: '2bd8c14e035c2d48f184aaa168559e86b0e3433228d3c4075900a221785019b0',\n [ConstantsUtil.BITGET_CONNECTOR_NAME]: '38f5d18bd8522c244bdd70cb4a68e0e718865155811c043f052fb9f1c51de662',\n [ConstantsUtil.FRONTIER_CONNECTOR_NAME]: '85db431492aa2e8672e93f4ea7acf10c88b97b867b0d373107af63dc4880f041',\n [ConstantsUtil.XVERSE_CONNECTOR_NAME]: '2a87d74ae02e10bdd1f51f7ce6c4e1cc53cd5f2c0b6b5ad0d7b3007d2b13de7b',\n [ConstantsUtil.LEATHER_CONNECTOR_NAME]: '483afe1df1df63daf313109971ff3ef8356ddf1cc4e45877d205eee0b7893a13'\n },\n NetworkImageIds: {\n 1: 'ba0ba0cd-17c6-4806-ad93-f9d174f17900',\n 42161: '3bff954d-5cb0-47a0-9a23-d20192e74600',\n 43114: '30c46e53-e989-45fb-4549-be3bd4eb3b00',\n 56: '93564157-2e8e-4ce7-81df-b264dbee9b00',\n 250: '06b26297-fe0c-4733-5d6b-ffa5498aac00',\n 10: 'ab9c186a-c52f-464b-2906-ca59d760a400',\n 137: '41d04d42-da3b-4453-8506-668cc0727900',\n 5000: 'e86fae9b-b770-4eea-e520-150e12c81100',\n 295: '6a97d510-cac8-4e58-c7ce-e8681b044c00',\n 11_155_111: 'e909ea0a-f92a-4512-c8fc-748044ea6800',\n 84532: 'a18a7ecd-e307-4360-4746-283182228e00',\n 1301: '4eeea7ef-0014-4649-5d1d-07271a80f600',\n 130: '2257980a-3463-48c6-cbac-a42d2a956e00',\n 10_143: '0a728e83-bacb-46db-7844-948f05434900',\n 100: '02b53f6a-e3d4-479e-1cb4-21178987d100',\n 9001: 'f926ff41-260d-4028-635e-91913fc28e00',\n 324: 'b310f07f-4ef7-49f3-7073-2a0a39685800',\n 314: '5a73b3dd-af74-424e-cae0-0de859ee9400',\n 4689: '34e68754-e536-40da-c153-6ef2e7188a00',\n 1088: '3897a66d-40b9-4833-162f-a2c90531c900',\n 1284: '161038da-44ae-4ec7-1208-0ea569454b00',\n 1285: 'f1d73bb6-5450-4e18-38f7-fb6484264a00',\n 7777777: '845c60df-d429-4991-e687-91ae45791600',\n 42220: 'ab781bbc-ccc6-418d-d32d-789b15da1f00',\n 8453: '7289c336-3981-4081-c5f4-efc26ac64a00',\n 1313161554: '3ff73439-a619-4894-9262-4470c773a100',\n 2020: 'b8101fc0-9c19-4b6f-ec65-f6dfff106e00',\n 2021: 'b8101fc0-9c19-4b6f-ec65-f6dfff106e00',\n 80094: 'e329c2c9-59b0-4a02-83e4-212ff3779900',\n 2741: 'fc2427d1-5af9-4a9c-8da5-6f94627cd900',\n '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp': 'a1b58899-f671-4276-6a5e-56ca5bd59700',\n '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z': 'a1b58899-f671-4276-6a5e-56ca5bd59700',\n EtWTRABZaYq6iMfeYKouRu166VU2xqa1: 'a1b58899-f671-4276-6a5e-56ca5bd59700',\n '000000000019d6689c085ae165831e93': '0b4838db-0161-4ffe-022d-532bf03dba00',\n '000000000933ea01ad0ee984209779ba': '39354064-d79b-420b-065d-f980c4b78200'\n },\n ConnectorImageIds: {\n [CommonConstantsUtil.CONNECTOR_ID.COINBASE]: '0c2840c3-5b04-4c44-9661-fbd4b49e1800',\n [CommonConstantsUtil.CONNECTOR_ID.COINBASE_SDK]: '0c2840c3-5b04-4c44-9661-fbd4b49e1800',\n [CommonConstantsUtil.CONNECTOR_ID.SAFE]: '461db637-8616-43ce-035a-d89b8a1d5800',\n [CommonConstantsUtil.CONNECTOR_ID.LEDGER]: '54a1aa77-d202-4f8d-0fb2-5d2bb6db0300',\n [CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT]: 'ef1a1fcf-7fe8-4d69-bd6d-fda1345b4400',\n [CommonConstantsUtil.CONNECTOR_ID.INJECTED]: '07ba87ed-43aa-4adf-4540-9e6a2b9cae00'\n },\n ConnectorNamesMap: {\n [CommonConstantsUtil.CONNECTOR_ID.INJECTED]: 'Browser Wallet',\n [CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT]: 'WalletConnect',\n [CommonConstantsUtil.CONNECTOR_ID.COINBASE]: 'Coinbase',\n [CommonConstantsUtil.CONNECTOR_ID.COINBASE_SDK]: 'Coinbase',\n [CommonConstantsUtil.CONNECTOR_ID.LEDGER]: 'Ledger',\n [CommonConstantsUtil.CONNECTOR_ID.SAFE]: 'Safe'\n },\n ConnectorTypesMap: {\n [CommonConstantsUtil.CONNECTOR_ID.INJECTED]: 'INJECTED',\n [CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT]: 'WALLET_CONNECT',\n [CommonConstantsUtil.CONNECTOR_ID.EIP6963]: 'ANNOUNCED',\n [CommonConstantsUtil.CONNECTOR_ID.AUTH]: 'AUTH'\n },\n WalletConnectRpcChainIds: [\n 1,\n 5,\n 11155111,\n 10,\n 420,\n 42161,\n 421613,\n 137,\n 80001,\n 42220,\n 1313161554,\n 1313161555,\n 56,\n 97,\n 43114,\n 43113,\n 100,\n 8453,\n 84531,\n 7777777,\n 999,\n 324,\n 280\n ]\n};\n//# sourceMappingURL=PresetsUtil.js.map","import { ConstantsUtil } from './ConstantsUtil.js';\nexport const HelpersUtil = {\n getCaipTokens(tokens) {\n if (!tokens) {\n return undefined;\n }\n const caipTokens = {};\n Object.entries(tokens).forEach(([id, token]) => {\n caipTokens[`${ConstantsUtil.EIP155}:${id}`] = token;\n });\n return caipTokens;\n },\n isLowerCaseMatch(str1, str2) {\n return str1?.toLowerCase() === str2?.toLowerCase();\n }\n};\n//# sourceMappingURL=HelpersUtil.js.map","const abortController = new AbortController();\nexport const ErrorUtil = {\n EmbeddedWalletAbortController: abortController,\n UniversalProviderErrors: {\n UNAUTHORIZED_DOMAIN_NOT_ALLOWED: {\n message: 'Unauthorized: origin not allowed',\n alertErrorKey: 'INVALID_APP_CONFIGURATION'\n },\n JWT_VALIDATION_ERROR: {\n message: 'JWT validation error: JWT Token is not yet valid',\n alertErrorKey: 'JWT_TOKEN_NOT_VALID'\n },\n INVALID_KEY: {\n message: 'Unauthorized: invalid key',\n alertErrorKey: 'INVALID_PROJECT_ID'\n }\n },\n ALERT_ERRORS: {\n SWITCH_NETWORK_NOT_FOUND: {\n shortMessage: 'Network Not Found',\n longMessage: \"Network not found - please make sure it is included in 'networks' array in createAppKit function\"\n },\n INVALID_APP_CONFIGURATION: {\n shortMessage: 'Invalid App Configuration',\n longMessage: () => `Origin ${isSafe() ? window.origin : 'unknown'} not found on Allowlist - update configuration on cloud.reown.com`\n },\n IFRAME_LOAD_FAILED: {\n shortMessage: 'Network Error - Could not load embedded wallet',\n longMessage: () => 'There was an issue loading the embedded wallet. Please try again later.'\n },\n IFRAME_REQUEST_TIMEOUT: {\n shortMessage: 'Embedded Wallet Request Timed Out',\n longMessage: () => 'There was an issue doing the request to the embedded wallet. Please try again later.'\n },\n UNVERIFIED_DOMAIN: {\n shortMessage: 'Invalid App Configuration',\n longMessage: () => 'There was an issue loading the embedded wallet. Please verify that your domain is allowed at cloud.reown.com'\n },\n JWT_TOKEN_NOT_VALID: {\n shortMessage: 'Session Expired',\n longMessage: 'Invalid session found on UniversalProvider - please check your time settings and connect again'\n },\n INVALID_PROJECT_ID: {\n shortMessage: 'Invalid App Configuration',\n longMessage: 'Invalid Project ID - update configuration'\n },\n PROJECT_ID_NOT_CONFIGURED: {\n shortMessage: 'Project ID Not Configured',\n longMessage: 'Project ID Not Configured - update configuration on cloud.reown.com'\n }\n }\n};\nfunction isSafe() {\n return typeof window !== 'undefined';\n}\n//# sourceMappingURL=ErrorUtil.js.map","import { generatePlatformLogger, getDefaultLoggerOptions } from '@walletconnect/logger';\nexport const LoggerUtil = {\n createLogger(onError, level = 'error') {\n const loggerOptions = getDefaultLoggerOptions({\n level\n });\n const { logger } = generatePlatformLogger({\n opts: loggerOptions\n });\n logger.error = (...args) => {\n for (const arg of args) {\n if (arg instanceof Error) {\n onError(arg, ...args);\n return;\n }\n }\n onError(undefined, ...args);\n };\n return logger;\n }\n};\n//# sourceMappingURL=LoggerUtil.js.map","import { fallback, http } from 'viem';\nimport { ConstantsUtil } from '@reown/appkit-common';\nimport { ChainController, StorageUtil } from '@reown/appkit-controllers';\nimport { PresetsUtil } from './PresetsUtil.js';\nconst RPC_URL_HOST = 'rpc.walletconnect.org';\nexport function getBlockchainApiRpcUrl(caipNetworkId, projectId) {\n const url = new URL('https://rpc.walletconnect.org/v1/');\n url.searchParams.set('chainId', caipNetworkId);\n url.searchParams.set('projectId', projectId);\n return url.toString();\n}\nconst WC_HTTP_RPC_SUPPORTED_CHAINS = [\n 'near:mainnet',\n 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',\n 'eip155:1101',\n 'eip155:56',\n 'eip155:42161',\n 'eip155:7777777',\n 'eip155:59144',\n 'eip155:324',\n 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',\n 'eip155:5000',\n 'solana:4sgjmw1sunhzsxgspuhpqldx6wiyjntz',\n 'eip155:80084',\n 'eip155:5003',\n 'eip155:100',\n 'eip155:8453',\n 'eip155:42220',\n 'eip155:1313161555',\n 'eip155:17000',\n 'eip155:1',\n 'eip155:300',\n 'eip155:1313161554',\n 'eip155:1329',\n 'eip155:84532',\n 'eip155:421614',\n 'eip155:11155111',\n 'eip155:8217',\n 'eip155:43114',\n 'solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z',\n 'eip155:999999999',\n 'eip155:11155420',\n 'eip155:80002',\n 'eip155:97',\n 'eip155:43113',\n 'eip155:137',\n 'eip155:10',\n 'eip155:1301',\n 'bip122:000000000019d6689c085ae165831e93',\n 'bip122:000000000933ea01ad0ee984209779ba'\n];\nexport const CaipNetworksUtil = {\n extendRpcUrlWithProjectId(rpcUrl, projectId) {\n let isReownUrl = false;\n try {\n const url = new URL(rpcUrl);\n isReownUrl = url.host === RPC_URL_HOST;\n }\n catch (e) {\n isReownUrl = false;\n }\n if (isReownUrl) {\n const url = new URL(rpcUrl);\n if (!url.searchParams.has('projectId')) {\n url.searchParams.set('projectId', projectId);\n }\n return url.toString();\n }\n return rpcUrl;\n },\n isCaipNetwork(network) {\n return 'chainNamespace' in network && 'caipNetworkId' in network;\n },\n getChainNamespace(network) {\n if (this.isCaipNetwork(network)) {\n return network.chainNamespace;\n }\n return ConstantsUtil.CHAIN.EVM;\n },\n getCaipNetworkId(network) {\n if (this.isCaipNetwork(network)) {\n return network.caipNetworkId;\n }\n return `${ConstantsUtil.CHAIN.EVM}:${network.id}`;\n },\n getDefaultRpcUrl(caipNetwork, caipNetworkId, projectId) {\n const defaultRpcUrl = caipNetwork.rpcUrls?.default?.http?.[0];\n if (WC_HTTP_RPC_SUPPORTED_CHAINS.includes(caipNetworkId)) {\n return getBlockchainApiRpcUrl(caipNetworkId, projectId);\n }\n return defaultRpcUrl || '';\n },\n extendCaipNetwork(caipNetwork, { customNetworkImageUrls, projectId, customRpcUrls }) {\n const chainNamespace = this.getChainNamespace(caipNetwork);\n const caipNetworkId = this.getCaipNetworkId(caipNetwork);\n const networkDefaultRpcUrl = caipNetwork.rpcUrls.default.http?.[0];\n const reownRpcUrl = this.getDefaultRpcUrl(caipNetwork, caipNetworkId, projectId);\n const chainDefaultRpcUrl = caipNetwork?.rpcUrls?.['chainDefault']?.http?.[0] || networkDefaultRpcUrl;\n const customRpcUrlsOfNetwork = customRpcUrls?.[caipNetworkId]?.map(i => i.url) || [];\n const rpcUrls = [...customRpcUrlsOfNetwork, reownRpcUrl];\n const rpcUrlsWithoutReown = [...customRpcUrlsOfNetwork];\n if (chainDefaultRpcUrl && !rpcUrlsWithoutReown.includes(chainDefaultRpcUrl)) {\n rpcUrlsWithoutReown.push(chainDefaultRpcUrl);\n }\n return {\n ...caipNetwork,\n chainNamespace,\n caipNetworkId,\n assets: {\n imageId: PresetsUtil.NetworkImageIds[caipNetwork.id],\n imageUrl: customNetworkImageUrls?.[caipNetwork.id]\n },\n rpcUrls: {\n ...caipNetwork.rpcUrls,\n default: {\n http: rpcUrls\n },\n chainDefault: {\n http: rpcUrlsWithoutReown\n }\n }\n };\n },\n extendCaipNetworks(caipNetworks, { customNetworkImageUrls, projectId, customRpcUrls }) {\n return caipNetworks.map(caipNetwork => CaipNetworksUtil.extendCaipNetwork(caipNetwork, {\n customNetworkImageUrls,\n customRpcUrls,\n projectId\n }));\n },\n getViemTransport(caipNetwork, projectId, customRpcUrls) {\n const transports = [];\n customRpcUrls?.forEach(rpcUrl => {\n transports.push(http(rpcUrl.url, rpcUrl.config));\n });\n if (WC_HTTP_RPC_SUPPORTED_CHAINS.includes(caipNetwork.caipNetworkId)) {\n transports.push(http(getBlockchainApiRpcUrl(caipNetwork.caipNetworkId, projectId), {\n fetchOptions: {\n headers: {\n 'Content-Type': 'text/plain'\n }\n }\n }));\n }\n caipNetwork?.rpcUrls?.default?.http?.forEach(rpcUrl => {\n transports.push(http(rpcUrl));\n });\n return fallback(transports);\n },\n extendWagmiTransports(caipNetwork, projectId, transport) {\n if (WC_HTTP_RPC_SUPPORTED_CHAINS.includes(caipNetwork.caipNetworkId)) {\n const reownRpcUrl = this.getDefaultRpcUrl(caipNetwork, caipNetwork.caipNetworkId, projectId);\n return fallback([transport, http(reownRpcUrl)]);\n }\n return transport;\n },\n getUnsupportedNetwork(caipNetworkId) {\n return {\n id: caipNetworkId.split(':')[1],\n caipNetworkId,\n name: ConstantsUtil.UNSUPPORTED_NETWORK_NAME,\n chainNamespace: caipNetworkId.split(':')[0],\n nativeCurrency: {\n name: '',\n decimals: 0,\n symbol: ''\n },\n rpcUrls: {\n default: {\n http: []\n }\n }\n };\n },\n getCaipNetworkFromStorage(defaultCaipNetwork) {\n const caipNetworkIdFromStorage = StorageUtil.getActiveCaipNetworkId();\n const caipNetworks = ChainController.getAllRequestedCaipNetworks();\n const availableNamespaces = Array.from(ChainController.state.chains?.keys() || []);\n const namespace = caipNetworkIdFromStorage?.split(':')[0];\n const isNamespaceAvailable = namespace ? availableNamespaces.includes(namespace) : false;\n const caipNetwork = caipNetworks?.find(cn => cn.caipNetworkId === caipNetworkIdFromStorage);\n const isUnsupportedNetwork = isNamespaceAvailable && !caipNetwork && caipNetworkIdFromStorage;\n if (isUnsupportedNetwork) {\n return this.getUnsupportedNetwork(caipNetworkIdFromStorage);\n }\n if (caipNetwork) {\n return caipNetwork;\n }\n if (defaultCaipNetwork) {\n return defaultCaipNetwork;\n }\n return caipNetworks?.[0];\n }\n};\n//# sourceMappingURL=CaipNetworkUtil.js.map","import { proxy, ref, subscribe } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nconst CLEAN_PROVIDERS_STATE = {\n eip155: undefined,\n solana: undefined,\n polkadot: undefined,\n bip122: undefined,\n cosmos: undefined\n};\nconst state = proxy({\n providers: { ...CLEAN_PROVIDERS_STATE },\n providerIds: { ...CLEAN_PROVIDERS_STATE }\n});\nexport const ProviderUtil = {\n state,\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n subscribe(callback) {\n return subscribe(state, () => {\n callback(state);\n });\n },\n subscribeProviders(callback) {\n return subscribe(state.providers, () => callback(state.providers));\n },\n setProvider(chainNamespace, provider) {\n if (provider) {\n state.providers[chainNamespace] = ref(provider);\n }\n },\n getProvider(chainNamespace) {\n return state.providers[chainNamespace];\n },\n setProviderId(chainNamespace, providerId) {\n if (providerId) {\n state.providerIds[chainNamespace] = providerId;\n }\n },\n getProviderId(chainNamespace) {\n if (!chainNamespace) {\n return undefined;\n }\n return state.providerIds[chainNamespace];\n },\n reset() {\n state.providers = { ...CLEAN_PROVIDERS_STATE };\n state.providerIds = { ...CLEAN_PROVIDERS_STATE };\n },\n resetChain(chainNamespace) {\n state.providers[chainNamespace] = undefined;\n state.providerIds[chainNamespace] = undefined;\n }\n};\n//# sourceMappingURL=ProviderUtil.js.map","export const ConstantsUtil = {\n ACCOUNT_TABS: [{ label: 'Tokens' }, { label: 'NFTs' }, { label: 'Activity' }],\n SECURE_SITE_ORIGIN: (typeof process !== 'undefined' && typeof process.env !== 'undefined'\n ? process.env['NEXT_PUBLIC_SECURE_SITE_ORIGIN']\n : undefined) || 'https://secure.walletconnect.org',\n VIEW_DIRECTION: {\n Next: 'next',\n Prev: 'prev'\n },\n DEFAULT_CONNECT_METHOD_ORDER: ['email', 'social', 'wallet'],\n ANIMATION_DURATIONS: {\n HeaderText: 120,\n ModalHeight: 150,\n ViewTransition: 150\n }\n};\n//# sourceMappingURL=ConstantsUtil.js.map","import { ApiController, ConnectorController, CoreHelperUtil, OptionsController, StorageUtil } from '@reown/appkit-controllers';\nimport { HelpersUtil } from '@reown/appkit-utils';\nimport { ConnectorUtil } from './ConnectorUtil.js';\nimport { ConstantsUtil } from './ConstantsUtil.js';\nexport const WalletUtil = {\n filterOutDuplicatesByRDNS(wallets) {\n const connectors = OptionsController.state.enableEIP6963\n ? ConnectorController.state.connectors\n : [];\n const recent = StorageUtil.getRecentWallets();\n const connectorRDNSs = connectors\n .map(connector => connector.info?.rdns)\n .filter(Boolean);\n const recentRDNSs = recent.map(wallet => wallet.rdns).filter(Boolean);\n const allRDNSs = connectorRDNSs.concat(recentRDNSs);\n if (allRDNSs.includes('io.metamask.mobile') && CoreHelperUtil.isMobile()) {\n const index = allRDNSs.indexOf('io.metamask.mobile');\n allRDNSs[index] = 'io.metamask';\n }\n const filtered = wallets.filter(wallet => !allRDNSs.includes(String(wallet?.rdns)));\n return filtered;\n },\n filterOutDuplicatesByIds(wallets) {\n const connectors = ConnectorController.state.connectors.filter(connector => connector.type === 'ANNOUNCED' || connector.type === 'INJECTED');\n const recent = StorageUtil.getRecentWallets();\n const connectorIds = connectors.map(connector => connector.explorerId);\n const recentIds = recent.map(wallet => wallet.id);\n const allIds = connectorIds.concat(recentIds);\n const filtered = wallets.filter(wallet => !allIds.includes(wallet?.id));\n return filtered;\n },\n filterOutDuplicateWallets(wallets) {\n const uniqueByRDNS = this.filterOutDuplicatesByRDNS(wallets);\n const uniqueWallets = this.filterOutDuplicatesByIds(uniqueByRDNS);\n return uniqueWallets;\n },\n markWalletsAsInstalled(wallets) {\n const { connectors } = ConnectorController.state;\n const { featuredWalletIds } = OptionsController.state;\n const installedWalletRdnsMap = connectors\n .filter(connector => connector.type === 'ANNOUNCED')\n .reduce((rdnsMap, connector) => {\n if (!connector.info?.rdns) {\n return rdnsMap;\n }\n rdnsMap[connector.info.rdns] = true;\n return rdnsMap;\n }, {});\n const walletsWithInstallationStatus = wallets.map(wallet => ({\n ...wallet,\n installed: Boolean(wallet.rdns) && Boolean(installedWalletRdnsMap[wallet.rdns ?? ''])\n }));\n const sortedWallets = walletsWithInstallationStatus.sort((walletA, walletB) => {\n const installationComparison = Number(walletB.installed) - Number(walletA.installed);\n if (installationComparison !== 0) {\n return installationComparison;\n }\n if (featuredWalletIds?.length) {\n const walletAFeaturedIndex = featuredWalletIds.indexOf(walletA.id);\n const walletBFeaturedIndex = featuredWalletIds.indexOf(walletB.id);\n if (walletAFeaturedIndex !== -1 && walletBFeaturedIndex !== -1) {\n return walletAFeaturedIndex - walletBFeaturedIndex;\n }\n if (walletAFeaturedIndex !== -1) {\n return -1;\n }\n if (walletBFeaturedIndex !== -1) {\n return 1;\n }\n }\n return 0;\n });\n return sortedWallets;\n },\n getConnectOrderMethod(_features, _connectors) {\n const connectMethodOrder = _features?.connectMethodsOrder || OptionsController.state.features?.connectMethodsOrder;\n const connectors = _connectors || ConnectorController.state.connectors;\n if (connectMethodOrder) {\n return connectMethodOrder;\n }\n const { injected, announced } = ConnectorUtil.getConnectorsByType(connectors, ApiController.state.recommended, ApiController.state.featured);\n const shownInjected = injected.filter(ConnectorUtil.showConnector);\n const shownAnnounced = announced.filter(ConnectorUtil.showConnector);\n if (shownInjected.length || shownAnnounced.length) {\n return ['wallet', 'email', 'social'];\n }\n return ConstantsUtil.DEFAULT_CONNECT_METHOD_ORDER;\n },\n isExcluded(wallet) {\n const isRDNSExcluded = Boolean(wallet.rdns) && ApiController.state.excludedWallets.some(w => w.rdns === wallet.rdns);\n const isNameExcluded = Boolean(wallet.name) &&\n ApiController.state.excludedWallets.some(w => HelpersUtil.isLowerCaseMatch(w.name, wallet.name));\n return isRDNSExcluded || isNameExcluded;\n }\n};\n//# sourceMappingURL=WalletUtil.js.map","import { ConstantsUtil } from '@reown/appkit-common';\nimport { ApiController, ChainController, ConnectionController, ConnectorController, CoreHelperUtil, OptionsController, StorageUtil } from '@reown/appkit-controllers';\nimport { HelpersUtil } from '@reown/appkit-utils';\nimport { WalletUtil } from './WalletUtil.js';\nexport const ConnectorUtil = {\n getConnectorsByType(connectors, recommended, featured) {\n const { customWallets } = OptionsController.state;\n const recent = StorageUtil.getRecentWallets();\n const filteredRecommended = WalletUtil.filterOutDuplicateWallets(recommended);\n const filteredFeatured = WalletUtil.filterOutDuplicateWallets(featured);\n const multiChain = connectors.filter(connector => connector.type === 'MULTI_CHAIN');\n const announced = connectors.filter(connector => connector.type === 'ANNOUNCED');\n const injected = connectors.filter(connector => connector.type === 'INJECTED');\n const external = connectors.filter(connector => connector.type === 'EXTERNAL');\n return {\n custom: customWallets,\n recent,\n external,\n multiChain,\n announced,\n injected,\n recommended: filteredRecommended,\n featured: filteredFeatured\n };\n },\n showConnector(connector) {\n const rdns = connector.info?.rdns;\n const isRDNSExcluded = Boolean(rdns) &&\n ApiController.state.excludedWallets.some(wallet => Boolean(wallet.rdns) && wallet.rdns === rdns);\n const isNameExcluded = Boolean(connector.name) &&\n ApiController.state.excludedWallets.some(wallet => HelpersUtil.isLowerCaseMatch(wallet.name, connector.name));\n if (connector.type === 'INJECTED') {\n const isBrowserWallet = connector.name === 'Browser Wallet';\n if (isBrowserWallet) {\n if (!CoreHelperUtil.isMobile()) {\n return false;\n }\n if (CoreHelperUtil.isMobile() && !rdns && !ConnectionController.checkInstalled()) {\n return false;\n }\n }\n if (isRDNSExcluded || isNameExcluded) {\n return false;\n }\n }\n if ((connector.type === 'ANNOUNCED' || connector.type === 'EXTERNAL') &&\n (isRDNSExcluded || isNameExcluded)) {\n return false;\n }\n return true;\n },\n getIsConnectedWithWC() {\n const chains = Array.from(ChainController.state.chains.values());\n const isConnectedWithWC = chains.some(chain => {\n const connectorId = ConnectorController.getConnectorId(chain.namespace);\n return connectorId === ConstantsUtil.CONNECTOR_ID.WALLET_CONNECT;\n });\n return isConnectedWithWC;\n },\n getConnectorTypeOrder({ recommended, featured, custom, recent, announced, injected, multiChain, external, overriddenConnectors = OptionsController.state.features?.connectorTypeOrder ?? [] }) {\n const isConnectedWithWC = ConnectorUtil.getIsConnectedWithWC();\n const isWCEnabled = OptionsController.state.enableWalletConnect;\n const allConnectors = [\n { type: 'walletConnect', isEnabled: isWCEnabled && !isConnectedWithWC },\n { type: 'recent', isEnabled: recent.length > 0 },\n { type: 'injected', isEnabled: [...injected, ...announced, ...multiChain].length > 0 },\n { type: 'featured', isEnabled: featured.length > 0 },\n { type: 'custom', isEnabled: custom && custom.length > 0 },\n { type: 'external', isEnabled: external.length > 0 },\n { type: 'recommended', isEnabled: recommended.length > 0 }\n ];\n const enabledConnectors = allConnectors.filter(option => option.isEnabled);\n const enabledConnectorTypes = new Set(enabledConnectors.map(option => option.type));\n const prioritizedConnectors = overriddenConnectors\n .filter(type => enabledConnectorTypes.has(type))\n .map(type => ({ type, isEnabled: true }));\n const remainingConnectors = enabledConnectors.filter(({ type: enabledConnectorType }) => {\n const hasPrioritizedConnector = prioritizedConnectors.some(({ type: prioritizedConnectorType }) => prioritizedConnectorType === enabledConnectorType);\n return !hasPrioritizedConnector;\n });\n return Array.from(new Set([...prioritizedConnectors, ...remainingConnectors].map(({ type }) => type)));\n }\n};\n//# sourceMappingURL=ConnectorUtil.js.map","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=h.fromAttribute(s,t.type)??this._$Ej?.get(e)??null,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.0\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.0\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.0\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import { css, unsafeCSS } from 'lit';\nimport { getW3mThemeVariables } from '@reown/appkit-common';\nlet themeTag = undefined;\nlet darkModeTag = undefined;\nlet lightModeTag = undefined;\nexport function initializeTheming(themeVariables, themeMode) {\n themeTag = document.createElement('style');\n darkModeTag = document.createElement('style');\n lightModeTag = document.createElement('style');\n themeTag.textContent = createRootStyles(themeVariables).core.cssText;\n darkModeTag.textContent = createRootStyles(themeVariables).dark.cssText;\n lightModeTag.textContent = createRootStyles(themeVariables).light.cssText;\n document.head.appendChild(themeTag);\n document.head.appendChild(darkModeTag);\n document.head.appendChild(lightModeTag);\n setColorTheme(themeMode);\n}\nexport function setColorTheme(themeMode) {\n if (darkModeTag && lightModeTag) {\n if (themeMode === 'light') {\n darkModeTag.removeAttribute('media');\n lightModeTag.media = 'enabled';\n }\n else {\n lightModeTag.removeAttribute('media');\n darkModeTag.media = 'enabled';\n }\n }\n}\nexport function setThemeVariables(themeVariables) {\n if (themeTag && darkModeTag && lightModeTag) {\n themeTag.textContent = createRootStyles(themeVariables).core.cssText;\n darkModeTag.textContent = createRootStyles(themeVariables).dark.cssText;\n lightModeTag.textContent = createRootStyles(themeVariables).light.cssText;\n }\n}\nfunction createRootStyles(themeVariables) {\n return {\n core: css `\n @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');\n @keyframes w3m-shake {\n 0% {\n transform: scale(1) rotate(0deg);\n }\n 20% {\n transform: scale(1) rotate(-1deg);\n }\n 40% {\n transform: scale(1) rotate(1.5deg);\n }\n 60% {\n transform: scale(1) rotate(-1.5deg);\n }\n 80% {\n transform: scale(1) rotate(1deg);\n }\n 100% {\n transform: scale(1) rotate(0deg);\n }\n }\n @keyframes w3m-iframe-fade-out {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n @keyframes w3m-iframe-zoom-in {\n 0% {\n transform: translateY(50px);\n opacity: 0;\n }\n 100% {\n transform: translateY(0px);\n opacity: 1;\n }\n }\n @keyframes w3m-iframe-zoom-in-mobile {\n 0% {\n transform: scale(0.95);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n :root {\n --w3m-modal-width: 360px;\n --w3m-color-mix-strength: ${unsafeCSS(themeVariables?.['--w3m-color-mix-strength']\n ? `${themeVariables['--w3m-color-mix-strength']}%`\n : '0%')};\n --w3m-font-family: ${unsafeCSS(themeVariables?.['--w3m-font-family'] ||\n 'Inter, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;')};\n --w3m-font-size-master: ${unsafeCSS(themeVariables?.['--w3m-font-size-master'] || '10px')};\n --w3m-border-radius-master: ${unsafeCSS(themeVariables?.['--w3m-border-radius-master'] || '4px')};\n --w3m-z-index: ${unsafeCSS(themeVariables?.['--w3m-z-index'] || 999)};\n\n --wui-font-family: var(--w3m-font-family);\n\n --wui-font-size-mini: calc(var(--w3m-font-size-master) * 0.8);\n --wui-font-size-micro: var(--w3m-font-size-master);\n --wui-font-size-tiny: calc(var(--w3m-font-size-master) * 1.2);\n --wui-font-size-small: calc(var(--w3m-font-size-master) * 1.4);\n --wui-font-size-paragraph: calc(var(--w3m-font-size-master) * 1.6);\n --wui-font-size-medium: calc(var(--w3m-font-size-master) * 1.8);\n --wui-font-size-large: calc(var(--w3m-font-size-master) * 2);\n --wui-font-size-title-6: calc(var(--w3m-font-size-master) * 2.2);\n --wui-font-size-medium-title: calc(var(--w3m-font-size-master) * 2.4);\n --wui-font-size-2xl: calc(var(--w3m-font-size-master) * 4);\n\n --wui-border-radius-5xs: var(--w3m-border-radius-master);\n --wui-border-radius-4xs: calc(var(--w3m-border-radius-master) * 1.5);\n --wui-border-radius-3xs: calc(var(--w3m-border-radius-master) * 2);\n --wui-border-radius-xxs: calc(var(--w3m-border-radius-master) * 3);\n --wui-border-radius-xs: calc(var(--w3m-border-radius-master) * 4);\n --wui-border-radius-s: calc(var(--w3m-border-radius-master) * 5);\n --wui-border-radius-m: calc(var(--w3m-border-radius-master) * 7);\n --wui-border-radius-l: calc(var(--w3m-border-radius-master) * 9);\n --wui-border-radius-3xl: calc(var(--w3m-border-radius-master) * 20);\n\n --wui-font-weight-light: 400;\n --wui-font-weight-regular: 500;\n --wui-font-weight-medium: 600;\n --wui-font-weight-bold: 700;\n\n --wui-letter-spacing-2xl: -1.6px;\n --wui-letter-spacing-medium-title: -0.96px;\n --wui-letter-spacing-title-6: -0.88px;\n --wui-letter-spacing-large: -0.8px;\n --wui-letter-spacing-medium: -0.72px;\n --wui-letter-spacing-paragraph: -0.64px;\n --wui-letter-spacing-small: -0.56px;\n --wui-letter-spacing-tiny: -0.48px;\n --wui-letter-spacing-micro: -0.2px;\n --wui-letter-spacing-mini: -0.16px;\n\n --wui-spacing-0: 0px;\n --wui-spacing-4xs: 2px;\n --wui-spacing-3xs: 4px;\n --wui-spacing-xxs: 6px;\n --wui-spacing-2xs: 7px;\n --wui-spacing-xs: 8px;\n --wui-spacing-1xs: 10px;\n --wui-spacing-s: 12px;\n --wui-spacing-m: 14px;\n --wui-spacing-l: 16px;\n --wui-spacing-2l: 18px;\n --wui-spacing-xl: 20px;\n --wui-spacing-xxl: 24px;\n --wui-spacing-2xl: 32px;\n --wui-spacing-3xl: 40px;\n --wui-spacing-4xl: 90px;\n --wui-spacing-5xl: 95px;\n\n --wui-icon-box-size-xxs: 14px;\n --wui-icon-box-size-xs: 20px;\n --wui-icon-box-size-sm: 24px;\n --wui-icon-box-size-md: 32px;\n --wui-icon-box-size-mdl: 36px;\n --wui-icon-box-size-lg: 40px;\n --wui-icon-box-size-2lg: 48px;\n --wui-icon-box-size-xl: 64px;\n\n --wui-icon-size-inherit: inherit;\n --wui-icon-size-xxs: 10px;\n --wui-icon-size-xs: 12px;\n --wui-icon-size-sm: 14px;\n --wui-icon-size-md: 16px;\n --wui-icon-size-mdl: 18px;\n --wui-icon-size-lg: 20px;\n --wui-icon-size-xl: 24px;\n --wui-icon-size-xxl: 28px;\n\n --wui-wallet-image-size-inherit: inherit;\n --wui-wallet-image-size-sm: 40px;\n --wui-wallet-image-size-md: 56px;\n --wui-wallet-image-size-lg: 80px;\n\n --wui-visual-size-size-inherit: inherit;\n --wui-visual-size-sm: 40px;\n --wui-visual-size-md: 55px;\n --wui-visual-size-lg: 80px;\n\n --wui-box-size-md: 100px;\n --wui-box-size-lg: 120px;\n\n --wui-ease-out-power-2: cubic-bezier(0, 0, 0.22, 1);\n --wui-ease-out-power-1: cubic-bezier(0, 0, 0.55, 1);\n\n --wui-ease-in-power-3: cubic-bezier(0.66, 0, 1, 1);\n --wui-ease-in-power-2: cubic-bezier(0.45, 0, 1, 1);\n --wui-ease-in-power-1: cubic-bezier(0.3, 0, 1, 1);\n\n --wui-ease-inout-power-1: cubic-bezier(0.45, 0, 0.55, 1);\n\n --wui-duration-lg: 200ms;\n --wui-duration-md: 125ms;\n --wui-duration-sm: 75ms;\n\n --wui-path-network-sm: path(\n 'M15.4 2.1a5.21 5.21 0 0 1 5.2 0l11.61 6.7a5.21 5.21 0 0 1 2.61 4.52v13.4c0 1.87-1 3.59-2.6 4.52l-11.61 6.7c-1.62.93-3.6.93-5.22 0l-11.6-6.7a5.21 5.21 0 0 1-2.61-4.51v-13.4c0-1.87 1-3.6 2.6-4.52L15.4 2.1Z'\n );\n\n --wui-path-network-md: path(\n 'M43.4605 10.7248L28.0485 1.61089C25.5438 0.129705 22.4562 0.129705 19.9515 1.61088L4.53951 10.7248C2.03626 12.2051 0.5 14.9365 0.5 17.886V36.1139C0.5 39.0635 2.03626 41.7949 4.53951 43.2752L19.9515 52.3891C22.4562 53.8703 25.5438 53.8703 28.0485 52.3891L43.4605 43.2752C45.9637 41.7949 47.5 39.0635 47.5 36.114V17.8861C47.5 14.9365 45.9637 12.2051 43.4605 10.7248Z'\n );\n\n --wui-path-network-lg: path(\n 'M78.3244 18.926L50.1808 2.45078C45.7376 -0.150261 40.2624 -0.150262 35.8192 2.45078L7.6756 18.926C3.23322 21.5266 0.5 26.3301 0.5 31.5248V64.4752C0.5 69.6699 3.23322 74.4734 7.6756 77.074L35.8192 93.5492C40.2624 96.1503 45.7376 96.1503 50.1808 93.5492L78.3244 77.074C82.7668 74.4734 85.5 69.6699 85.5 64.4752V31.5248C85.5 26.3301 82.7668 21.5266 78.3244 18.926Z'\n );\n\n --wui-width-network-sm: 36px;\n --wui-width-network-md: 48px;\n --wui-width-network-lg: 86px;\n\n --wui-height-network-sm: 40px;\n --wui-height-network-md: 54px;\n --wui-height-network-lg: 96px;\n\n --wui-icon-size-network-xs: 12px;\n --wui-icon-size-network-sm: 16px;\n --wui-icon-size-network-md: 24px;\n --wui-icon-size-network-lg: 42px;\n\n --wui-color-inherit: inherit;\n\n --wui-color-inverse-100: #fff;\n --wui-color-inverse-000: #000;\n\n --wui-cover: rgba(20, 20, 20, 0.8);\n\n --wui-color-modal-bg: var(--wui-color-modal-bg-base);\n\n --wui-color-accent-100: var(--wui-color-accent-base-100);\n --wui-color-accent-090: var(--wui-color-accent-base-090);\n --wui-color-accent-080: var(--wui-color-accent-base-080);\n\n --wui-color-success-100: var(--wui-color-success-base-100);\n --wui-color-success-125: var(--wui-color-success-base-125);\n\n --wui-color-warning-100: var(--wui-color-warning-base-100);\n\n --wui-color-error-100: var(--wui-color-error-base-100);\n --wui-color-error-125: var(--wui-color-error-base-125);\n\n --wui-color-blue-100: var(--wui-color-blue-base-100);\n --wui-color-blue-90: var(--wui-color-blue-base-90);\n\n --wui-icon-box-bg-error-100: var(--wui-icon-box-bg-error-base-100);\n --wui-icon-box-bg-blue-100: var(--wui-icon-box-bg-blue-base-100);\n --wui-icon-box-bg-success-100: var(--wui-icon-box-bg-success-base-100);\n --wui-icon-box-bg-inverse-100: var(--wui-icon-box-bg-inverse-base-100);\n\n --wui-all-wallets-bg-100: var(--wui-all-wallets-bg-100);\n\n --wui-avatar-border: var(--wui-avatar-border-base);\n\n --wui-thumbnail-border: var(--wui-thumbnail-border-base);\n\n --wui-wallet-button-bg: var(--wui-wallet-button-bg-base);\n\n --wui-box-shadow-blue: var(--wui-color-accent-glass-020);\n }\n\n @supports (background: color-mix(in srgb, white 50%, black)) {\n :root {\n --wui-color-modal-bg: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-modal-bg-base)\n );\n\n --wui-box-shadow-blue: color-mix(in srgb, var(--wui-color-accent-100) 20%, transparent);\n\n --wui-color-accent-100: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 100%,\n transparent\n );\n --wui-color-accent-090: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 90%,\n transparent\n );\n --wui-color-accent-080: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 80%,\n transparent\n );\n --wui-color-accent-glass-090: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 90%,\n transparent\n );\n --wui-color-accent-glass-080: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 80%,\n transparent\n );\n --wui-color-accent-glass-020: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 20%,\n transparent\n );\n --wui-color-accent-glass-015: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 15%,\n transparent\n );\n --wui-color-accent-glass-010: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 10%,\n transparent\n );\n --wui-color-accent-glass-005: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 5%,\n transparent\n );\n --wui-color-accent-002: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 2%,\n transparent\n );\n\n --wui-color-fg-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-100)\n );\n --wui-color-fg-125: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-125)\n );\n --wui-color-fg-150: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-150)\n );\n --wui-color-fg-175: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-175)\n );\n --wui-color-fg-200: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-200)\n );\n --wui-color-fg-225: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-225)\n );\n --wui-color-fg-250: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-250)\n );\n --wui-color-fg-275: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-275)\n );\n --wui-color-fg-300: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-300)\n );\n --wui-color-fg-325: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-325)\n );\n --wui-color-fg-350: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-350)\n );\n\n --wui-color-bg-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-100)\n );\n --wui-color-bg-125: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-125)\n );\n --wui-color-bg-150: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-150)\n );\n --wui-color-bg-175: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-175)\n );\n --wui-color-bg-200: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-200)\n );\n --wui-color-bg-225: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-225)\n );\n --wui-color-bg-250: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-250)\n );\n --wui-color-bg-275: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-275)\n );\n --wui-color-bg-300: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-300)\n );\n --wui-color-bg-325: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-325)\n );\n --wui-color-bg-350: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-350)\n );\n\n --wui-color-success-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-success-base-100)\n );\n --wui-color-success-125: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-success-base-125)\n );\n\n --wui-color-warning-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-warning-base-100)\n );\n\n --wui-color-error-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-error-base-100)\n );\n --wui-color-blue-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-blue-base-100)\n );\n --wui-color-blue-90: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-blue-base-90)\n );\n --wui-color-error-125: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-error-base-125)\n );\n\n --wui-icon-box-bg-error-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-icon-box-bg-error-base-100)\n );\n --wui-icon-box-bg-accent-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-icon-box-bg-blue-base-100)\n );\n --wui-icon-box-bg-success-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-icon-box-bg-success-base-100)\n );\n --wui-icon-box-bg-inverse-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-icon-box-bg-inverse-base-100)\n );\n\n --wui-all-wallets-bg-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-all-wallets-bg-100)\n );\n\n --wui-avatar-border: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-avatar-border-base)\n );\n\n --wui-thumbnail-border: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-thumbnail-border-base)\n );\n\n --wui-wallet-button-bg: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-wallet-button-bg-base)\n );\n }\n }\n `,\n light: css `\n :root {\n --w3m-color-mix: ${unsafeCSS(themeVariables?.['--w3m-color-mix'] || '#fff')};\n --w3m-accent: ${unsafeCSS(getW3mThemeVariables(themeVariables, 'dark')['--w3m-accent'])};\n --w3m-default: #fff;\n\n --wui-color-modal-bg-base: ${unsafeCSS(getW3mThemeVariables(themeVariables, 'dark')['--w3m-background'])};\n --wui-color-accent-base-100: var(--w3m-accent);\n\n --wui-color-blueberry-100: hsla(230, 100%, 67%, 1);\n --wui-color-blueberry-090: hsla(231, 76%, 61%, 1);\n --wui-color-blueberry-080: hsla(230, 59%, 55%, 1);\n --wui-color-blueberry-050: hsla(231, 100%, 70%, 0.1);\n\n --wui-color-fg-100: #e4e7e7;\n --wui-color-fg-125: #d0d5d5;\n --wui-color-fg-150: #a8b1b1;\n --wui-color-fg-175: #a8b0b0;\n --wui-color-fg-200: #949e9e;\n --wui-color-fg-225: #868f8f;\n --wui-color-fg-250: #788080;\n --wui-color-fg-275: #788181;\n --wui-color-fg-300: #6e7777;\n --wui-color-fg-325: #9a9a9a;\n --wui-color-fg-350: #363636;\n\n --wui-color-bg-100: #141414;\n --wui-color-bg-125: #191a1a;\n --wui-color-bg-150: #1e1f1f;\n --wui-color-bg-175: #222525;\n --wui-color-bg-200: #272a2a;\n --wui-color-bg-225: #2c3030;\n --wui-color-bg-250: #313535;\n --wui-color-bg-275: #363b3b;\n --wui-color-bg-300: #3b4040;\n --wui-color-bg-325: #252525;\n --wui-color-bg-350: #ffffff;\n\n --wui-color-success-base-100: #26d962;\n --wui-color-success-base-125: #30a46b;\n\n --wui-color-warning-base-100: #f3a13f;\n\n --wui-color-error-base-100: #f25a67;\n --wui-color-error-base-125: #df4a34;\n\n --wui-color-blue-base-100: rgba(102, 125, 255, 1);\n --wui-color-blue-base-90: rgba(102, 125, 255, 0.9);\n\n --wui-color-success-glass-001: rgba(38, 217, 98, 0.01);\n --wui-color-success-glass-002: rgba(38, 217, 98, 0.02);\n --wui-color-success-glass-005: rgba(38, 217, 98, 0.05);\n --wui-color-success-glass-010: rgba(38, 217, 98, 0.1);\n --wui-color-success-glass-015: rgba(38, 217, 98, 0.15);\n --wui-color-success-glass-020: rgba(38, 217, 98, 0.2);\n --wui-color-success-glass-025: rgba(38, 217, 98, 0.25);\n --wui-color-success-glass-030: rgba(38, 217, 98, 0.3);\n --wui-color-success-glass-060: rgba(38, 217, 98, 0.6);\n --wui-color-success-glass-080: rgba(38, 217, 98, 0.8);\n\n --wui-color-success-glass-reown-020: rgba(48, 164, 107, 0.2);\n\n --wui-color-warning-glass-reown-020: rgba(243, 161, 63, 0.2);\n\n --wui-color-error-glass-001: rgba(242, 90, 103, 0.01);\n --wui-color-error-glass-002: rgba(242, 90, 103, 0.02);\n --wui-color-error-glass-005: rgba(242, 90, 103, 0.05);\n --wui-color-error-glass-010: rgba(242, 90, 103, 0.1);\n --wui-color-error-glass-015: rgba(242, 90, 103, 0.15);\n --wui-color-error-glass-020: rgba(242, 90, 103, 0.2);\n --wui-color-error-glass-025: rgba(242, 90, 103, 0.25);\n --wui-color-error-glass-030: rgba(242, 90, 103, 0.3);\n --wui-color-error-glass-060: rgba(242, 90, 103, 0.6);\n --wui-color-error-glass-080: rgba(242, 90, 103, 0.8);\n\n --wui-color-error-glass-reown-020: rgba(223, 74, 52, 0.2);\n\n --wui-color-gray-glass-001: rgba(255, 255, 255, 0.01);\n --wui-color-gray-glass-002: rgba(255, 255, 255, 0.02);\n --wui-color-gray-glass-005: rgba(255, 255, 255, 0.05);\n --wui-color-gray-glass-010: rgba(255, 255, 255, 0.1);\n --wui-color-gray-glass-015: rgba(255, 255, 255, 0.15);\n --wui-color-gray-glass-020: rgba(255, 255, 255, 0.2);\n --wui-color-gray-glass-025: rgba(255, 255, 255, 0.25);\n --wui-color-gray-glass-030: rgba(255, 255, 255, 0.3);\n --wui-color-gray-glass-060: rgba(255, 255, 255, 0.6);\n --wui-color-gray-glass-080: rgba(255, 255, 255, 0.8);\n --wui-color-gray-glass-090: rgba(255, 255, 255, 0.9);\n\n --wui-color-dark-glass-100: rgba(42, 42, 42, 1);\n\n --wui-icon-box-bg-error-base-100: #3c2426;\n --wui-icon-box-bg-blue-base-100: #20303f;\n --wui-icon-box-bg-success-base-100: #1f3a28;\n --wui-icon-box-bg-inverse-base-100: #243240;\n\n --wui-all-wallets-bg-100: #222b35;\n\n --wui-avatar-border-base: #252525;\n\n --wui-thumbnail-border-base: #252525;\n\n --wui-wallet-button-bg-base: var(--wui-color-bg-125);\n\n --w3m-card-embedded-shadow-color: rgb(17 17 18 / 25%);\n }\n `,\n dark: css `\n :root {\n --w3m-color-mix: ${unsafeCSS(themeVariables?.['--w3m-color-mix'] || '#000')};\n --w3m-accent: ${unsafeCSS(getW3mThemeVariables(themeVariables, 'light')['--w3m-accent'])};\n --w3m-default: #000;\n\n --wui-color-modal-bg-base: ${unsafeCSS(getW3mThemeVariables(themeVariables, 'light')['--w3m-background'])};\n --wui-color-accent-base-100: var(--w3m-accent);\n\n --wui-color-blueberry-100: hsla(231, 100%, 70%, 1);\n --wui-color-blueberry-090: hsla(231, 97%, 72%, 1);\n --wui-color-blueberry-080: hsla(231, 92%, 74%, 1);\n\n --wui-color-fg-100: #141414;\n --wui-color-fg-125: #2d3131;\n --wui-color-fg-150: #474d4d;\n --wui-color-fg-175: #636d6d;\n --wui-color-fg-200: #798686;\n --wui-color-fg-225: #828f8f;\n --wui-color-fg-250: #8b9797;\n --wui-color-fg-275: #95a0a0;\n --wui-color-fg-300: #9ea9a9;\n --wui-color-fg-325: #9a9a9a;\n --wui-color-fg-350: #d0d0d0;\n\n --wui-color-bg-100: #ffffff;\n --wui-color-bg-125: #f5fafa;\n --wui-color-bg-150: #f3f8f8;\n --wui-color-bg-175: #eef4f4;\n --wui-color-bg-200: #eaf1f1;\n --wui-color-bg-225: #e5eded;\n --wui-color-bg-250: #e1e9e9;\n --wui-color-bg-275: #dce7e7;\n --wui-color-bg-300: #d8e3e3;\n --wui-color-bg-325: #f3f3f3;\n --wui-color-bg-350: #202020;\n\n --wui-color-success-base-100: #26b562;\n --wui-color-success-base-125: #30a46b;\n\n --wui-color-warning-base-100: #f3a13f;\n\n --wui-color-error-base-100: #f05142;\n --wui-color-error-base-125: #df4a34;\n\n --wui-color-blue-base-100: rgba(102, 125, 255, 1);\n --wui-color-blue-base-90: rgba(102, 125, 255, 0.9);\n\n --wui-color-success-glass-001: rgba(38, 181, 98, 0.01);\n --wui-color-success-glass-002: rgba(38, 181, 98, 0.02);\n --wui-color-success-glass-005: rgba(38, 181, 98, 0.05);\n --wui-color-success-glass-010: rgba(38, 181, 98, 0.1);\n --wui-color-success-glass-015: rgba(38, 181, 98, 0.15);\n --wui-color-success-glass-020: rgba(38, 181, 98, 0.2);\n --wui-color-success-glass-025: rgba(38, 181, 98, 0.25);\n --wui-color-success-glass-030: rgba(38, 181, 98, 0.3);\n --wui-color-success-glass-060: rgba(38, 181, 98, 0.6);\n --wui-color-success-glass-080: rgba(38, 181, 98, 0.8);\n\n --wui-color-success-glass-reown-020: rgba(48, 164, 107, 0.2);\n\n --wui-color-warning-glass-reown-020: rgba(243, 161, 63, 0.2);\n\n --wui-color-error-glass-001: rgba(240, 81, 66, 0.01);\n --wui-color-error-glass-002: rgba(240, 81, 66, 0.02);\n --wui-color-error-glass-005: rgba(240, 81, 66, 0.05);\n --wui-color-error-glass-010: rgba(240, 81, 66, 0.1);\n --wui-color-error-glass-015: rgba(240, 81, 66, 0.15);\n --wui-color-error-glass-020: rgba(240, 81, 66, 0.2);\n --wui-color-error-glass-025: rgba(240, 81, 66, 0.25);\n --wui-color-error-glass-030: rgba(240, 81, 66, 0.3);\n --wui-color-error-glass-060: rgba(240, 81, 66, 0.6);\n --wui-color-error-glass-080: rgba(240, 81, 66, 0.8);\n\n --wui-color-error-glass-reown-020: rgba(223, 74, 52, 0.2);\n\n --wui-icon-box-bg-error-base-100: #f4dfdd;\n --wui-icon-box-bg-blue-base-100: #d9ecfb;\n --wui-icon-box-bg-success-base-100: #daf0e4;\n --wui-icon-box-bg-inverse-base-100: #dcecfc;\n\n --wui-all-wallets-bg-100: #e8f1fa;\n\n --wui-avatar-border-base: #f3f4f4;\n\n --wui-thumbnail-border-base: #eaefef;\n\n --wui-wallet-button-bg-base: var(--wui-color-bg-125);\n\n --wui-color-gray-glass-001: rgba(0, 0, 0, 0.01);\n --wui-color-gray-glass-002: rgba(0, 0, 0, 0.02);\n --wui-color-gray-glass-005: rgba(0, 0, 0, 0.05);\n --wui-color-gray-glass-010: rgba(0, 0, 0, 0.1);\n --wui-color-gray-glass-015: rgba(0, 0, 0, 0.15);\n --wui-color-gray-glass-020: rgba(0, 0, 0, 0.2);\n --wui-color-gray-glass-025: rgba(0, 0, 0, 0.25);\n --wui-color-gray-glass-030: rgba(0, 0, 0, 0.3);\n --wui-color-gray-glass-060: rgba(0, 0, 0, 0.6);\n --wui-color-gray-glass-080: rgba(0, 0, 0, 0.8);\n --wui-color-gray-glass-090: rgba(0, 0, 0, 0.9);\n\n --wui-color-dark-glass-100: rgba(233, 233, 233, 1);\n\n --w3m-card-embedded-shadow-color: rgb(224 225 233 / 25%);\n }\n `\n };\n}\nexport const resetStyles = css `\n *,\n *::after,\n *::before,\n :host {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n font-style: normal;\n text-rendering: optimizeSpeed;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n -webkit-tap-highlight-color: transparent;\n font-family: var(--wui-font-family);\n backface-visibility: hidden;\n }\n`;\nexport const elementStyles = css `\n button,\n a {\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n transition:\n color var(--wui-duration-lg) var(--wui-ease-out-power-1),\n background-color var(--wui-duration-lg) var(--wui-ease-out-power-1),\n border var(--wui-duration-lg) var(--wui-ease-out-power-1),\n border-radius var(--wui-duration-lg) var(--wui-ease-out-power-1),\n box-shadow var(--wui-duration-lg) var(--wui-ease-out-power-1);\n will-change: background-color, color, border, box-shadow, border-radius;\n outline: none;\n border: none;\n column-gap: var(--wui-spacing-3xs);\n background-color: transparent;\n text-decoration: none;\n }\n\n wui-flex {\n transition: border-radius var(--wui-duration-lg) var(--wui-ease-out-power-1);\n will-change: border-radius;\n }\n\n button:disabled > wui-wallet-image,\n button:disabled > wui-all-wallets-image,\n button:disabled > wui-network-image,\n button:disabled > wui-image,\n button:disabled > wui-transaction-visual,\n button:disabled > wui-logo {\n filter: grayscale(1);\n }\n\n @media (hover: hover) and (pointer: fine) {\n button:hover:enabled {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n button:active:enabled {\n background-color: var(--wui-color-gray-glass-010);\n }\n }\n\n button:disabled > wui-icon-box {\n opacity: 0.5;\n }\n\n input {\n border: none;\n outline: none;\n appearance: none;\n }\n`;\nexport const colorStyles = css `\n .wui-color-inherit {\n color: var(--wui-color-inherit);\n }\n\n .wui-color-accent-100 {\n color: var(--wui-color-accent-100);\n }\n\n .wui-color-error-100 {\n color: var(--wui-color-error-100);\n }\n\n .wui-color-blue-100 {\n color: var(--wui-color-blue-100);\n }\n\n .wui-color-blue-90 {\n color: var(--wui-color-blue-90);\n }\n\n .wui-color-error-125 {\n color: var(--wui-color-error-125);\n }\n\n .wui-color-success-100 {\n color: var(--wui-color-success-100);\n }\n\n .wui-color-success-125 {\n color: var(--wui-color-success-125);\n }\n\n .wui-color-inverse-100 {\n color: var(--wui-color-inverse-100);\n }\n\n .wui-color-inverse-000 {\n color: var(--wui-color-inverse-000);\n }\n\n .wui-color-fg-100 {\n color: var(--wui-color-fg-100);\n }\n\n .wui-color-fg-200 {\n color: var(--wui-color-fg-200);\n }\n\n .wui-color-fg-300 {\n color: var(--wui-color-fg-300);\n }\n\n .wui-color-fg-325 {\n color: var(--wui-color-fg-325);\n }\n\n .wui-color-fg-350 {\n color: var(--wui-color-fg-350);\n }\n\n .wui-bg-color-inherit {\n background-color: var(--wui-color-inherit);\n }\n\n .wui-bg-color-blue-100 {\n background-color: var(--wui-color-accent-100);\n }\n\n .wui-bg-color-error-100 {\n background-color: var(--wui-color-error-100);\n }\n\n .wui-bg-color-error-125 {\n background-color: var(--wui-color-error-125);\n }\n\n .wui-bg-color-success-100 {\n background-color: var(--wui-color-success-100);\n }\n\n .wui-bg-color-success-125 {\n background-color: var(--wui-color-success-100);\n }\n\n .wui-bg-color-inverse-100 {\n background-color: var(--wui-color-inverse-100);\n }\n\n .wui-bg-color-inverse-000 {\n background-color: var(--wui-color-inverse-000);\n }\n\n .wui-bg-color-fg-100 {\n background-color: var(--wui-color-fg-100);\n }\n\n .wui-bg-color-fg-200 {\n background-color: var(--wui-color-fg-200);\n }\n\n .wui-bg-color-fg-300 {\n background-color: var(--wui-color-fg-300);\n }\n\n .wui-color-fg-325 {\n background-color: var(--wui-color-fg-325);\n }\n\n .wui-color-fg-350 {\n background-color: var(--wui-color-fg-350);\n }\n`;\n//# sourceMappingURL=ThemeUtil.js.map","export const WcConstantsUtil = {\n ERROR_CODE_UNRECOGNIZED_CHAIN_ID: 4902,\n ERROR_CODE_DEFAULT: 5000,\n ERROR_INVALID_CHAIN_ID: 32603,\n DEFAULT_ALLOWED_ANCESTORS: [\n 'http://localhost:*',\n 'https://*.pages.dev',\n 'https://*.vercel.app',\n 'https://*.ngrok-free.app',\n 'https://secure-mobile.walletconnect.com',\n 'https://secure-mobile.walletconnect.org'\n ]\n};\n//# sourceMappingURL=ConstantsUtil.js.map","export function defineChain(chain) {\n return {\n formatters: undefined,\n fees: undefined,\n serializers: undefined,\n ...chain\n };\n}\n//# sourceMappingURL=utils.js.map","import { defineChain } from '../utils.js';\nexport const solana = defineChain({\n id: '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',\n name: 'Solana',\n network: 'solana-mainnet',\n nativeCurrency: { name: 'Solana', symbol: 'SOL', decimals: 9 },\n rpcUrls: {\n default: { http: ['https://rpc.walletconnect.org/v1'] }\n },\n blockExplorers: { default: { name: 'Solscan', url: 'https://solscan.io' } },\n testnet: false,\n chainNamespace: 'solana',\n caipNetworkId: 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',\n deprecatedCaipNetworkId: 'solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ'\n});\n//# sourceMappingURL=solana.js.map","import { defineChain } from '../utils.js';\nexport const solanaDevnet = defineChain({\n id: 'EtWTRABZaYq6iMfeYKouRu166VU2xqa1',\n name: 'Solana Devnet',\n network: 'solana-devnet',\n nativeCurrency: { name: 'Solana', symbol: 'SOL', decimals: 9 },\n rpcUrls: {\n default: { http: ['https://rpc.walletconnect.org/v1'] }\n },\n blockExplorers: { default: { name: 'Solscan', url: 'https://solscan.io' } },\n testnet: true,\n chainNamespace: 'solana',\n caipNetworkId: 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',\n deprecatedCaipNetworkId: 'solana:8E9rvCKLFQia2Y35HXjjpWzj8weVo44K'\n});\n//# sourceMappingURL=solanaDevnet.js.map","import { defineChain } from '../utils.js';\nexport const solanaTestnet = defineChain({\n id: '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z',\n name: 'Solana Testnet',\n network: 'solana-testnet',\n nativeCurrency: { name: 'Solana', symbol: 'SOL', decimals: 9 },\n rpcUrls: {\n default: { http: ['https://rpc.walletconnect.org/v1'] }\n },\n blockExplorers: { default: { name: 'Solscan', url: 'https://solscan.io' } },\n testnet: true,\n chainNamespace: 'solana',\n caipNetworkId: 'solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z'\n});\n//# sourceMappingURL=solanaTestnet.js.map","import { defineChain } from './utils.js';\nexport const bitcoin = defineChain({\n id: '000000000019d6689c085ae165831e93',\n caipNetworkId: 'bip122:000000000019d6689c085ae165831e93',\n chainNamespace: 'bip122',\n name: 'Bitcoin',\n nativeCurrency: {\n name: 'Bitcoin',\n symbol: 'BTC',\n decimals: 8\n },\n rpcUrls: {\n default: { http: ['https://rpc.walletconnect.org/v1'] }\n }\n});\nexport const bitcoinTestnet = defineChain({\n id: '000000000933ea01ad0ee984209779ba',\n caipNetworkId: 'bip122:000000000933ea01ad0ee984209779ba',\n chainNamespace: 'bip122',\n name: 'Bitcoin Testnet',\n nativeCurrency: {\n name: 'Bitcoin',\n symbol: 'BTC',\n decimals: 8\n },\n rpcUrls: {\n default: { http: ['https://rpc.walletconnect.org/v1'] }\n },\n testnet: true\n});\n//# sourceMappingURL=bitcoin.js.map","import { EnsController } from '@reown/appkit-controllers';\nimport { solana, solanaDevnet } from '../networks/index.js';\nexport const DEFAULT_METHODS = {\n solana: [\n 'solana_signMessage',\n 'solana_signTransaction',\n 'solana_requestAccounts',\n 'solana_getAccounts',\n 'solana_signAllTransactions',\n 'solana_signAndSendTransaction'\n ],\n eip155: [\n 'eth_accounts',\n 'eth_requestAccounts',\n 'eth_sendRawTransaction',\n 'eth_sign',\n 'eth_signTransaction',\n 'eth_signTypedData',\n 'eth_signTypedData_v3',\n 'eth_signTypedData_v4',\n 'eth_sendTransaction',\n 'personal_sign',\n 'wallet_switchEthereumChain',\n 'wallet_addEthereumChain',\n 'wallet_getPermissions',\n 'wallet_requestPermissions',\n 'wallet_registerOnboarding',\n 'wallet_watchAsset',\n 'wallet_scanQRCode',\n // EIP-5792\n 'wallet_getCallsStatus',\n 'wallet_showCallsStatus',\n 'wallet_sendCalls',\n 'wallet_getCapabilities',\n // EIP-7715\n 'wallet_grantPermissions',\n 'wallet_revokePermissions',\n //EIP-7811\n 'wallet_getAssets'\n ],\n bip122: ['sendTransfer', 'signMessage', 'signPsbt', 'getAccountAddresses']\n};\nexport const WcHelpersUtil = {\n getMethodsByChainNamespace(chainNamespace) {\n return DEFAULT_METHODS[chainNamespace] || [];\n },\n createDefaultNamespace(chainNamespace) {\n return {\n methods: this.getMethodsByChainNamespace(chainNamespace),\n events: ['accountsChanged', 'chainChanged'],\n chains: [],\n rpcMap: {}\n };\n },\n applyNamespaceOverrides(baseNamespaces, overrides) {\n if (!overrides) {\n return { ...baseNamespaces };\n }\n const result = { ...baseNamespaces };\n const namespacesToOverride = new Set();\n if (overrides.methods) {\n Object.keys(overrides.methods).forEach(ns => namespacesToOverride.add(ns));\n }\n if (overrides.chains) {\n Object.keys(overrides.chains).forEach(ns => namespacesToOverride.add(ns));\n }\n if (overrides.events) {\n Object.keys(overrides.events).forEach(ns => namespacesToOverride.add(ns));\n }\n if (overrides.rpcMap) {\n Object.keys(overrides.rpcMap).forEach(chainId => {\n const [ns] = chainId.split(':');\n if (ns) {\n namespacesToOverride.add(ns);\n }\n });\n }\n namespacesToOverride.forEach(ns => {\n if (!result[ns]) {\n result[ns] = this.createDefaultNamespace(ns);\n }\n });\n if (overrides.methods) {\n Object.entries(overrides.methods).forEach(([ns, methods]) => {\n if (result[ns]) {\n result[ns].methods = methods;\n }\n });\n }\n if (overrides.chains) {\n Object.entries(overrides.chains).forEach(([ns, chains]) => {\n if (result[ns]) {\n result[ns].chains = chains;\n }\n });\n }\n if (overrides.events) {\n Object.entries(overrides.events).forEach(([ns, events]) => {\n if (result[ns]) {\n result[ns].events = events;\n }\n });\n }\n if (overrides.rpcMap) {\n const processedNamespaces = new Set();\n Object.entries(overrides.rpcMap).forEach(([chainId, rpcUrl]) => {\n const [ns, id] = chainId.split(':');\n if (!ns || !id || !result[ns]) {\n return;\n }\n if (!result[ns].rpcMap) {\n result[ns].rpcMap = {};\n }\n if (!processedNamespaces.has(ns)) {\n result[ns].rpcMap = {};\n processedNamespaces.add(ns);\n }\n result[ns].rpcMap[id] = rpcUrl;\n });\n }\n return result;\n },\n createNamespaces(caipNetworks, configOverride) {\n const defaultNamespaces = caipNetworks.reduce((acc, chain) => {\n const { id, chainNamespace, rpcUrls } = chain;\n const rpcUrl = rpcUrls.default.http[0];\n if (!acc[chainNamespace]) {\n acc[chainNamespace] = this.createDefaultNamespace(chainNamespace);\n }\n const caipNetworkId = `${chainNamespace}:${id}`;\n // eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style\n const namespace = acc[chainNamespace];\n namespace.chains.push(caipNetworkId);\n // Workaround for wallets that only support deprecated Solana network ID\n switch (caipNetworkId) {\n case solana.caipNetworkId:\n namespace.chains.push(solana.deprecatedCaipNetworkId);\n break;\n case solanaDevnet.caipNetworkId:\n namespace.chains.push(solanaDevnet.deprecatedCaipNetworkId);\n break;\n default:\n }\n if (namespace?.rpcMap && rpcUrl) {\n namespace.rpcMap[id] = rpcUrl;\n }\n return acc;\n }, {});\n return this.applyNamespaceOverrides(defaultNamespaces, configOverride);\n },\n resolveReownName: async (name) => {\n const wcNameAddress = await EnsController.resolveName(name);\n const networkNameAddresses = Object.values(wcNameAddress?.addresses) || [];\n return networkNameAddresses[0]?.address || false;\n },\n getChainsFromNamespaces(namespaces = {}) {\n return Object.values(namespaces).flatMap(namespace => {\n const chains = (namespace.chains || []);\n const accountsChains = namespace.accounts.map(account => {\n const [chainNamespace, chainId] = account.split(':');\n return `${chainNamespace}:${chainId}`;\n });\n return Array.from(new Set([...chains, ...accountsChains]));\n });\n },\n isSessionEventData(data) {\n return (typeof data === 'object' &&\n data !== null &&\n 'id' in data &&\n 'topic' in data &&\n 'params' in data &&\n typeof data.params === 'object' &&\n data.params !== null &&\n 'chainId' in data.params &&\n 'event' in data.params &&\n typeof data.params.event === 'object' &&\n data.params.event !== null);\n },\n isOriginAllowed(currentOrigin, allowedPatterns, defaultAllowedOrigins) {\n for (const pattern of [...allowedPatterns, ...defaultAllowedOrigins]) {\n if (pattern.includes('*')) {\n // Convert wildcard pattern to regex, escape special chars, replace *, match whole string\n const escapedPattern = pattern.replace(/[.*+?^${}()|[\\]\\\\]/gu, '\\\\$&');\n const regexString = `^${escapedPattern.replace(/\\\\\\*/gu, '.*')}$`;\n const regex = new RegExp(regexString, 'u');\n if (regex.test(currentOrigin)) {\n return true;\n }\n }\n else {\n /**\n * There are some cases where pattern is getting just the origin, where using new URL(pattern).origin will throw an error\n * thus we a try catch to handle this case\n */\n try {\n if (new URL(pattern).origin === currentOrigin) {\n return true;\n }\n }\n catch (e) {\n if (pattern === currentOrigin) {\n return true;\n }\n }\n }\n }\n // No match found\n return false;\n }\n};\n//# sourceMappingURL=HelpersUtil.js.map","import UniversalProvider from '@walletconnect/universal-provider';\nimport { ConstantsUtil } from '@reown/appkit-common';\nimport { ChainController, OptionsController, SIWXUtil } from '@reown/appkit-controllers';\nimport { PresetsUtil } from '@reown/appkit-utils';\nimport { WcHelpersUtil } from '../utils/index.js';\nexport class WalletConnectConnector {\n constructor({ provider, namespace }) {\n this.id = ConstantsUtil.CONNECTOR_ID.WALLET_CONNECT;\n this.name = PresetsUtil.ConnectorNamesMap[ConstantsUtil.CONNECTOR_ID.WALLET_CONNECT];\n this.type = 'WALLET_CONNECT';\n this.imageId = PresetsUtil.ConnectorImageIds[ConstantsUtil.CONNECTOR_ID.WALLET_CONNECT];\n this.getCaipNetworks = ChainController.getCaipNetworks.bind(ChainController);\n this.caipNetworks = this.getCaipNetworks();\n this.provider = provider;\n this.chain = namespace;\n }\n get chains() {\n return this.getCaipNetworks();\n }\n async connectWalletConnect() {\n const isAuthenticated = await this.authenticate();\n if (!isAuthenticated) {\n const caipNetworks = this.getCaipNetworks();\n const universalProviderConfigOverride = OptionsController.state.universalProviderConfigOverride;\n const namespaces = WcHelpersUtil.createNamespaces(caipNetworks, universalProviderConfigOverride);\n await this.provider.connect({ optionalNamespaces: namespaces });\n }\n return {\n clientId: await this.provider.client.core.crypto.getClientId(),\n session: this.provider.session\n };\n }\n async disconnect() {\n await this.provider.disconnect();\n }\n async authenticate() {\n const chains = this.chains.map(network => network.caipNetworkId);\n return SIWXUtil.universalProviderAuthenticate({\n universalProvider: this.provider,\n chains,\n methods: OPTIONAL_METHODS\n });\n }\n}\nconst OPTIONAL_METHODS = [\n 'eth_accounts',\n 'eth_requestAccounts',\n 'eth_sendRawTransaction',\n 'eth_sign',\n 'eth_signTransaction',\n 'eth_signTypedData',\n 'eth_signTypedData_v3',\n 'eth_signTypedData_v4',\n 'eth_sendTransaction',\n 'personal_sign',\n 'wallet_switchEthereumChain',\n 'wallet_addEthereumChain',\n 'wallet_getPermissions',\n 'wallet_requestPermissions',\n 'wallet_registerOnboarding',\n 'wallet_watchAsset',\n 'wallet_scanQRCode',\n // EIP-5792\n 'wallet_getCallsStatus',\n 'wallet_sendCalls',\n 'wallet_getCapabilities',\n // EIP-7715\n 'wallet_grantPermissions',\n 'wallet_revokePermissions',\n //EIP-7811\n 'wallet_getAssets'\n];\n//# sourceMappingURL=WalletConnectConnector.js.map","import UniversalProvider from '@walletconnect/universal-provider';\nimport { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common';\nimport { AccountController, ChainController } from '@reown/appkit-controllers';\nimport { PresetsUtil } from '@reown/appkit-utils';\nimport { WalletConnectConnector } from '../connectors/WalletConnectConnector.js';\n/**\n * Abstract class representing a chain adapter blueprint.\n * @template Connector - The type of connector extending ChainAdapterConnector\n */\nexport class AdapterBlueprint {\n /**\n * Creates an instance of AdapterBlueprint.\n * @param {AdapterBlueprint.Params} params - The parameters for initializing the adapter\n */\n constructor(params) {\n this.availableConnectors = [];\n this.eventListeners = new Map();\n this.getCaipNetworks = (namespace) => ChainController.getCaipNetworks(namespace);\n if (params) {\n this.construct(params);\n }\n }\n /**\n * Initializes the adapter with the given parameters.\n * @param {AdapterBlueprint.Params} params - The parameters for initializing the adapter\n */\n construct(params) {\n this.projectId = params.projectId;\n this.namespace = params.namespace;\n this.adapterType = params.adapterType;\n }\n /**\n * Gets the available connectors.\n * @returns {Connector[]} An array of available connectors\n */\n get connectors() {\n return this.availableConnectors;\n }\n /**\n * Gets the supported networks.\n * @returns {CaipNetwork[]} An array of supported networks\n */\n get networks() {\n return this.getCaipNetworks(this.namespace);\n }\n /**\n * Sets the auth provider.\n * @param {W3mFrameProvider} authProvider - The auth provider instance\n */\n setAuthProvider(authProvider) {\n this.addConnector({\n id: CommonConstantsUtil.CONNECTOR_ID.AUTH,\n type: 'AUTH',\n name: CommonConstantsUtil.CONNECTOR_NAMES.AUTH,\n provider: authProvider,\n imageId: PresetsUtil.ConnectorImageIds[CommonConstantsUtil.CONNECTOR_ID.AUTH],\n chain: this.namespace,\n chains: []\n });\n }\n /**\n * Adds one or more connectors to the available connectors list.\n * @param {...Connector} connectors - The connectors to add\n */\n addConnector(...connectors) {\n const connectorsAdded = new Set();\n this.availableConnectors = [...connectors, ...this.availableConnectors].filter(connector => {\n if (connectorsAdded.has(connector.id)) {\n return false;\n }\n connectorsAdded.add(connector.id);\n return true;\n });\n this.emit('connectors', this.availableConnectors);\n }\n setStatus(status, chainNamespace) {\n AccountController.setStatus(status, chainNamespace);\n }\n /**\n * Adds an event listener for a specific event.\n * @template T\n * @param {T} eventName - The name of the event\n * @param {EventCallback<T>} callback - The callback function to be called when the event is emitted\n */\n on(eventName, callback) {\n if (!this.eventListeners.has(eventName)) {\n this.eventListeners.set(eventName, new Set());\n }\n this.eventListeners.get(eventName)?.add(callback);\n }\n /**\n * Removes an event listener for a specific event.\n * @template T\n * @param {T} eventName - The name of the event\n * @param {EventCallback<T>} callback - The callback function to be removed\n */\n off(eventName, callback) {\n const listeners = this.eventListeners.get(eventName);\n if (listeners) {\n listeners.delete(callback);\n }\n }\n /**\n * Removes all event listeners.\n */\n removeAllEventListeners() {\n this.eventListeners.forEach(listeners => {\n listeners.clear();\n });\n }\n /**\n * Emits an event with the given name and optional data.\n * @template T\n * @param {T} eventName - The name of the event to emit\n * @param {EventData[T]} [data] - The optional data to be passed to the event listeners\n */\n emit(eventName, data) {\n const listeners = this.eventListeners.get(eventName);\n if (listeners) {\n listeners.forEach(callback => callback(data));\n }\n }\n /**\n * Connects to WalletConnect.\n * @param {number | string} [_chainId] - Optional chain ID to connect to\n */\n async connectWalletConnect(_chainId) {\n const connector = this.getWalletConnectConnector();\n const result = await connector.connectWalletConnect();\n return { clientId: result.clientId };\n }\n /**\n * Switches the network.\n * @param {AdapterBlueprint.SwitchNetworkParams} params - Network switching parameters\n */\n async switchNetwork(params) {\n const { caipNetwork, providerType } = params;\n if (!params.provider) {\n return;\n }\n const provider = 'provider' in params.provider ? params.provider.provider : params.provider;\n if (providerType === 'WALLET_CONNECT') {\n ;\n provider.setDefaultChain(caipNetwork.caipNetworkId);\n return;\n }\n if (provider && providerType === 'AUTH') {\n const authProvider = provider;\n const preferredAccountType = AccountController.state.preferredAccountTypes?.[caipNetwork.chainNamespace];\n await authProvider.switchNetwork(caipNetwork.caipNetworkId);\n const user = await authProvider.getUser({\n chainId: caipNetwork.caipNetworkId,\n preferredAccountType\n });\n this.emit('switchNetwork', user);\n }\n }\n getWalletConnectConnector() {\n const connector = this.connectors.find(c => c instanceof WalletConnectConnector);\n if (!connector) {\n throw new Error('WalletConnectConnector not found');\n }\n return connector;\n }\n}\n//# sourceMappingURL=ChainAdapterBlueprint.js.map","import bs58 from 'bs58';\nimport { toHex } from 'viem';\nimport { ConstantsUtil } from '@reown/appkit-common';\nimport { AccountController, ChainController, ConstantsUtil as CoreConstantsUtil, CoreHelperUtil } from '@reown/appkit-controllers';\nimport { AdapterBlueprint } from '../adapters/ChainAdapterBlueprint.js';\nimport { WalletConnectConnector } from '../connectors/WalletConnectConnector.js';\nimport { WcConstantsUtil } from '../utils/ConstantsUtil.js';\nexport class UniversalAdapter extends AdapterBlueprint {\n setUniversalProvider(universalProvider) {\n this.addConnector(new WalletConnectConnector({\n provider: universalProvider,\n caipNetworks: this.getCaipNetworks(),\n namespace: this.namespace\n }));\n }\n async connect(params) {\n return Promise.resolve({\n id: 'WALLET_CONNECT',\n type: 'WALLET_CONNECT',\n chainId: Number(params.chainId),\n provider: this.provider,\n address: ''\n });\n }\n async disconnect() {\n try {\n const connector = this.getWalletConnectConnector();\n await connector.disconnect();\n }\n catch (error) {\n console.warn('UniversalAdapter:disconnect - error', error);\n }\n }\n async getAccounts({ namespace }) {\n const provider = this.provider;\n const addresses = (provider?.session?.namespaces?.[namespace]?.accounts\n ?.map(account => {\n const [, , address] = account.split(':');\n return address;\n })\n .filter((address, index, self) => self.indexOf(address) === index) || []);\n return Promise.resolve({\n accounts: addresses.map(address => CoreHelperUtil.createAccount(namespace, address, namespace === 'bip122' ? 'payment' : 'eoa'))\n });\n }\n async syncConnectors() {\n return Promise.resolve();\n }\n async getBalance(params) {\n const isBalanceSupported = params.caipNetwork &&\n CoreConstantsUtil.BALANCE_SUPPORTED_CHAINS.includes(params.caipNetwork?.chainNamespace);\n if (!isBalanceSupported || params.caipNetwork?.testnet) {\n return {\n balance: '0.00',\n symbol: params.caipNetwork?.nativeCurrency.symbol || ''\n };\n }\n if (AccountController.state.balanceLoading &&\n params.chainId === ChainController.state.activeCaipNetwork?.id) {\n return {\n balance: AccountController.state.balance || '0.00',\n symbol: AccountController.state.balanceSymbol || ''\n };\n }\n const balances = await AccountController.fetchTokenBalance();\n const balance = balances.find(b => b.chainId === `${params.caipNetwork?.chainNamespace}:${params.chainId}` &&\n b.symbol === params.caipNetwork?.nativeCurrency.symbol);\n return {\n balance: balance?.quantity.numeric || '0.00',\n symbol: balance?.symbol || params.caipNetwork?.nativeCurrency.symbol || ''\n };\n }\n async signMessage(params) {\n const { provider, message, address } = params;\n if (!provider) {\n throw new Error('UniversalAdapter:signMessage - provider is undefined');\n }\n let signature = '';\n if (ChainController.state.activeCaipNetwork?.chainNamespace === ConstantsUtil.CHAIN.SOLANA) {\n const response = await provider.request({\n method: 'solana_signMessage',\n params: {\n message: bs58.encode(new TextEncoder().encode(message)),\n pubkey: address\n }\n }, ChainController.state.activeCaipNetwork?.caipNetworkId);\n signature = response.signature;\n }\n else {\n signature = await provider.request({\n method: 'personal_sign',\n params: [message, address]\n }, ChainController.state.activeCaipNetwork?.caipNetworkId);\n }\n return { signature };\n }\n // -- Transaction methods ---------------------------------------------------\n /**\n *\n * These methods are supported only on `wagmi` and `ethers` since the Solana SDK does not support them in the same way.\n * These function definition is to have a type parity between the clients. Currently not in use.\n */\n async estimateGas() {\n return Promise.resolve({\n gas: BigInt(0)\n });\n }\n async sendTransaction() {\n return Promise.resolve({\n hash: ''\n });\n }\n walletGetAssets(_params) {\n return Promise.resolve({});\n }\n async writeContract() {\n return Promise.resolve({\n hash: ''\n });\n }\n parseUnits() {\n return 0n;\n }\n formatUnits() {\n return '0';\n }\n async getCapabilities() {\n return Promise.resolve({});\n }\n async grantPermissions() {\n return Promise.resolve({});\n }\n async revokePermissions() {\n return Promise.resolve('0x');\n }\n async syncConnection() {\n return Promise.resolve({\n id: 'WALLET_CONNECT',\n type: 'WALLET_CONNECT',\n chainId: 1,\n provider: this.provider,\n address: ''\n });\n }\n // eslint-disable-next-line @typescript-eslint/require-await\n async switchNetwork(params) {\n const { caipNetwork } = params;\n const connector = this.getWalletConnectConnector();\n if (caipNetwork.chainNamespace === ConstantsUtil.CHAIN.EVM) {\n try {\n await connector.provider?.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: toHex(caipNetwork.id) }]\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n catch (switchError) {\n if (switchError.code === WcConstantsUtil.ERROR_CODE_UNRECOGNIZED_CHAIN_ID ||\n switchError.code === WcConstantsUtil.ERROR_INVALID_CHAIN_ID ||\n switchError.code === WcConstantsUtil.ERROR_CODE_DEFAULT ||\n switchError?.data?.originalError?.code ===\n WcConstantsUtil.ERROR_CODE_UNRECOGNIZED_CHAIN_ID) {\n try {\n await connector.provider?.request({\n method: 'wallet_addEthereumChain',\n params: [\n {\n chainId: toHex(caipNetwork.id),\n rpcUrls: [caipNetwork?.rpcUrls['chainDefault']?.http],\n chainName: caipNetwork.name,\n nativeCurrency: caipNetwork.nativeCurrency,\n blockExplorerUrls: [caipNetwork.blockExplorers?.default.url]\n }\n ]\n });\n }\n catch (error) {\n throw new Error('Chain is not supported');\n }\n }\n }\n }\n connector.provider.setDefaultChain(caipNetwork.caipNetworkId);\n }\n getWalletConnectProvider() {\n const connector = this.connectors.find(c => c.type === 'WALLET_CONNECT');\n const provider = connector?.provider;\n return provider;\n }\n}\n//# sourceMappingURL=client.js.map","import { AlertController, ApiController, ConstantsUtil } from '@reown/appkit-controllers';\nconst FEATURE_KEYS = [\n 'email',\n 'socials',\n 'swaps',\n 'onramp',\n 'activity',\n 'reownBranding'\n];\nconst featureConfig = {\n email: {\n apiFeatureName: 'social_login',\n localFeatureName: 'email',\n returnType: false,\n isLegacy: false,\n isAvailableOnBasic: false,\n processApi: (apiConfig) => {\n if (!apiConfig?.config) {\n return false;\n }\n const config = apiConfig.config;\n return Boolean(apiConfig.isEnabled) && config.includes('email');\n },\n processFallback: (localValue) => {\n if (localValue === undefined) {\n return ConstantsUtil.DEFAULT_REMOTE_FEATURES.email;\n }\n return Boolean(localValue);\n }\n },\n socials: {\n apiFeatureName: 'social_login',\n localFeatureName: 'socials',\n returnType: false,\n isLegacy: false,\n isAvailableOnBasic: false,\n processApi: (apiConfig) => {\n if (!apiConfig?.config) {\n return false;\n }\n const config = apiConfig.config;\n return Boolean(apiConfig.isEnabled) && config.length > 0\n ? config.filter((s) => s !== 'email')\n : false;\n },\n processFallback: (localValue) => {\n if (localValue === undefined) {\n return ConstantsUtil.DEFAULT_REMOTE_FEATURES.socials;\n }\n if (typeof localValue === 'boolean') {\n return localValue ? ConstantsUtil.DEFAULT_REMOTE_FEATURES.socials : false;\n }\n return localValue;\n }\n },\n swaps: {\n apiFeatureName: 'swap',\n localFeatureName: 'swaps',\n returnType: false,\n isLegacy: false,\n isAvailableOnBasic: false,\n processApi: (apiConfig) => {\n if (!apiConfig?.config) {\n return false;\n }\n const config = apiConfig.config;\n return Boolean(apiConfig.isEnabled) && config.length > 0 ? config : false;\n },\n processFallback: (localValue) => {\n if (localValue === undefined) {\n return ConstantsUtil.DEFAULT_REMOTE_FEATURES.swaps;\n }\n if (typeof localValue === 'boolean') {\n return localValue ? ConstantsUtil.DEFAULT_REMOTE_FEATURES.swaps : false;\n }\n return localValue;\n }\n },\n onramp: {\n apiFeatureName: 'onramp',\n localFeatureName: 'onramp',\n returnType: false,\n isLegacy: false,\n isAvailableOnBasic: false,\n processApi: (apiConfig) => {\n if (!apiConfig?.config) {\n return false;\n }\n const config = apiConfig.config;\n return Boolean(apiConfig.isEnabled) && config.length > 0 ? config : false;\n },\n processFallback: (localValue) => {\n if (localValue === undefined) {\n return ConstantsUtil.DEFAULT_REMOTE_FEATURES.onramp;\n }\n if (typeof localValue === 'boolean') {\n return localValue ? ConstantsUtil.DEFAULT_REMOTE_FEATURES.onramp : false;\n }\n return localValue;\n }\n },\n activity: {\n apiFeatureName: 'activity',\n localFeatureName: 'history',\n returnType: false,\n isLegacy: true,\n isAvailableOnBasic: false,\n processApi: (apiConfig) => Boolean(apiConfig.isEnabled),\n processFallback: (localValue) => {\n if (localValue === undefined) {\n return ConstantsUtil.DEFAULT_REMOTE_FEATURES.activity;\n }\n return Boolean(localValue);\n }\n },\n reownBranding: {\n apiFeatureName: 'reown_branding',\n localFeatureName: 'reownBranding',\n returnType: false,\n isLegacy: false,\n isAvailableOnBasic: false,\n processApi: (apiConfig) => Boolean(apiConfig.isEnabled),\n processFallback: (localValue) => {\n if (localValue === undefined) {\n return ConstantsUtil.DEFAULT_REMOTE_FEATURES.reownBranding;\n }\n return Boolean(localValue);\n }\n }\n};\nexport const ConfigUtil = {\n localSettingsOverridden: new Set(),\n getApiConfig(id, apiProjectConfig) {\n return apiProjectConfig?.find((f) => f.id === id);\n },\n addWarning(localFeatureValue, featureKey) {\n if (localFeatureValue !== undefined) {\n const config = featureConfig[featureKey];\n const warningName = config.isLegacy\n ? `\"features.${config.localFeatureName}\" (now \"${featureKey}\")`\n : `\"features.${featureKey}\"`;\n this.localSettingsOverridden.add(warningName);\n }\n },\n processFeature(featureKey, localFeatures, apiProjectConfig, useApi, isBasic) {\n const config = featureConfig[featureKey];\n const localValue = localFeatures[config.localFeatureName];\n if (isBasic && !config.isAvailableOnBasic) {\n return false;\n }\n if (useApi) {\n const apiConfig = this.getApiConfig(config.apiFeatureName, apiProjectConfig);\n if (apiConfig?.config === null) {\n return this.processFallbackFeature(featureKey, localValue);\n }\n if (!apiConfig?.config) {\n return false;\n }\n if (localValue !== undefined) {\n this.addWarning(localValue, featureKey);\n }\n return this.processApiFeature(featureKey, apiConfig);\n }\n return this.processFallbackFeature(featureKey, localValue);\n },\n processApiFeature(featureKey, apiConfig) {\n return featureConfig[featureKey].processApi(apiConfig);\n },\n processFallbackFeature(featureKey, localValue) {\n return featureConfig[featureKey].processFallback(localValue);\n },\n async fetchRemoteFeatures(config) {\n const isBasic = config.basic ?? false;\n const localFeatures = config.features || {};\n this.localSettingsOverridden.clear();\n let apiProjectConfig = null;\n let useApiConfig = false;\n try {\n apiProjectConfig = await ApiController.fetchProjectConfig();\n useApiConfig = apiProjectConfig !== null && apiProjectConfig !== undefined;\n }\n catch (e) {\n console.warn('[Reown Config] Failed to fetch remote project configuration. Using local/default values.', e);\n }\n const remoteFeaturesConfig = useApiConfig && !isBasic\n ? ConstantsUtil.DEFAULT_REMOTE_FEATURES\n : ConstantsUtil.DEFAULT_REMOTE_FEATURES_DISABLED;\n try {\n for (const featureKey of FEATURE_KEYS) {\n const result = this.processFeature(featureKey, localFeatures, apiProjectConfig, useApiConfig, isBasic);\n Object.assign(remoteFeaturesConfig, { [featureKey]: result });\n }\n }\n catch (e) {\n console.warn('[Reown Config] Failed to process the configuration from Cloud. Using default values.', e);\n return ConstantsUtil.DEFAULT_REMOTE_FEATURES;\n }\n if (useApiConfig && this.localSettingsOverridden.size > 0) {\n const warningMessage = `Your local configuration for ${Array.from(this.localSettingsOverridden).join(', ')} was ignored because a remote configuration was successfully fetched. Please manage these features via your project dashboard on dashboard.reown.com.`;\n AlertController.open({\n shortMessage: 'Local configuration ignored',\n longMessage: `[Reown Config Notice] ${warningMessage}`\n }, 'warning');\n }\n return remoteFeaturesConfig;\n }\n};\n//# sourceMappingURL=ConfigUtil.js.map","import UniversalProvider from '@walletconnect/universal-provider';\nimport { ConstantsUtil, NetworkUtil, ParseUtil } from '@reown/appkit-common';\nimport { AccountController, AlertController, ApiController, AssetUtil, BlockchainApiController, ChainController, ConnectionController, ConnectorController, ConstantsUtil as CoreConstantsUtil, CoreHelperUtil, EnsController, EventsController, ModalController, OnRampController, OptionsController, PublicStateController, RouterController, SIWXUtil, SendController, SnackController, StorageUtil, ThemeController } from '@reown/appkit-controllers';\nimport { getChainsToDisconnect } from '@reown/appkit-controllers/utils';\nimport { WalletUtil } from '@reown/appkit-scaffold-ui/utils';\nimport { setColorTheme, setThemeVariables } from '@reown/appkit-ui';\nimport { CaipNetworksUtil, ErrorUtil, HelpersUtil, LoggerUtil, ConstantsUtil as UtilConstantsUtil } from '@reown/appkit-utils';\nimport { ProviderUtil } from '@reown/appkit-utils';\nimport { UniversalAdapter } from '../universal-adapter/client.js';\nimport { ConfigUtil } from '../utils/ConfigUtil.js';\nimport { WcConstantsUtil, WcHelpersUtil } from '../utils/index.js';\nexport class AppKitBaseClient {\n constructor(options) {\n this.chainNamespaces = [];\n this.remoteFeatures = {};\n this.reportedAlertErrors = {};\n // -- Public Internal ---------------------------------------------------\n this.getCaipNetwork = (chainNamespace, id) => {\n if (chainNamespace) {\n const caipNetworkWithId = ChainController.getNetworkData(chainNamespace)?.requestedCaipNetworks?.find(c => c.id === id);\n if (caipNetworkWithId) {\n return caipNetworkWithId;\n }\n const namespaceCaipNetwork = ChainController.getNetworkData(chainNamespace)?.caipNetwork;\n if (namespaceCaipNetwork) {\n return namespaceCaipNetwork;\n }\n const requestedCaipNetworks = ChainController.getRequestedCaipNetworks(chainNamespace);\n return requestedCaipNetworks.filter(c => c.chainNamespace === chainNamespace)?.[0];\n }\n return ChainController.state.activeCaipNetwork || this.defaultCaipNetwork;\n };\n this.getCaipNetworkId = () => {\n const network = this.getCaipNetwork();\n if (network) {\n return network.id;\n }\n return undefined;\n };\n this.getCaipNetworks = (namespace) => ChainController.getCaipNetworks(namespace);\n this.getActiveChainNamespace = () => ChainController.state.activeChain;\n this.setRequestedCaipNetworks = (requestedCaipNetworks, chain) => {\n ChainController.setRequestedCaipNetworks(requestedCaipNetworks, chain);\n };\n this.getApprovedCaipNetworkIds = () => ChainController.getAllApprovedCaipNetworkIds();\n this.getCaipAddress = (chainNamespace) => {\n if (ChainController.state.activeChain === chainNamespace || !chainNamespace) {\n return ChainController.state.activeCaipAddress;\n }\n return ChainController.getAccountProp('caipAddress', chainNamespace);\n };\n this.setClientId = clientId => {\n BlockchainApiController.setClientId(clientId);\n };\n this.getProvider = (namespace) => ProviderUtil.getProvider(namespace);\n this.getProviderType = (namespace) => ProviderUtil.getProviderId(namespace);\n this.getPreferredAccountType = (namespace) => AccountController.state.preferredAccountTypes?.[namespace];\n this.setCaipAddress = (caipAddress, chain) => {\n AccountController.setCaipAddress(caipAddress, chain);\n /**\n * For the embedded use cases (Demo app), we should call close() when the user is connected to redirect them to Account View.\n */\n if (caipAddress && OptionsController.state.enableEmbedded) {\n this.close();\n }\n };\n this.setBalance = (balance, balanceSymbol, chain) => {\n AccountController.setBalance(balance, balanceSymbol, chain);\n };\n this.setProfileName = (profileName, chain) => {\n AccountController.setProfileName(profileName, chain);\n };\n this.setProfileImage = (profileImage, chain) => {\n AccountController.setProfileImage(profileImage, chain);\n };\n this.setUser = (user, chain) => {\n AccountController.setUser(user, chain);\n };\n this.resetAccount = (chain) => {\n AccountController.resetAccount(chain);\n };\n this.setCaipNetwork = caipNetwork => {\n ChainController.setActiveCaipNetwork(caipNetwork);\n };\n this.setCaipNetworkOfNamespace = (caipNetwork, chainNamespace) => {\n ChainController.setChainNetworkData(chainNamespace, { caipNetwork });\n };\n this.setAllAccounts = (addresses, chain) => {\n AccountController.setAllAccounts(addresses, chain);\n OptionsController.setHasMultipleAddresses(addresses?.length > 1);\n };\n this.setStatus = (status, chain) => {\n AccountController.setStatus(status, chain);\n // If at least one namespace is connected, set the connection status\n if (ConnectorController.isConnected()) {\n StorageUtil.setConnectionStatus('connected');\n }\n else {\n StorageUtil.setConnectionStatus('disconnected');\n }\n };\n this.getAddressByChainNamespace = (chainNamespace) => ChainController.getAccountProp('address', chainNamespace);\n this.setConnectors = connectors => {\n const allConnectors = [...ConnectorController.state.allConnectors, ...connectors];\n ConnectorController.setConnectors(allConnectors);\n };\n this.setConnections = (connections, chainNamespace) => {\n ConnectionController.setConnections(connections, chainNamespace);\n };\n this.fetchIdentity = request => BlockchainApiController.fetchIdentity(request);\n this.getReownName = address => EnsController.getNamesForAddress(address);\n this.getConnectors = () => ConnectorController.getConnectors();\n this.getConnectorImage = connector => AssetUtil.getConnectorImage(connector);\n this.setConnectedWalletInfo = (connectedWalletInfo, chain) => {\n const type = ProviderUtil.getProviderId(chain);\n const walletInfo = connectedWalletInfo ? { ...connectedWalletInfo, type } : undefined;\n AccountController.setConnectedWalletInfo(walletInfo, chain);\n };\n this.getIsConnectedState = () => Boolean(ChainController.state.activeCaipAddress);\n this.addAddressLabel = (address, label, chain) => {\n AccountController.addAddressLabel(address, label, chain);\n };\n this.removeAddressLabel = (address, chain) => {\n AccountController.removeAddressLabel(address, chain);\n };\n this.getAddress = (chainNamespace) => {\n if (ChainController.state.activeChain === chainNamespace || !chainNamespace) {\n return AccountController.state.address;\n }\n return ChainController.getAccountProp('address', chainNamespace);\n };\n this.setApprovedCaipNetworksData = namespace => ChainController.setApprovedCaipNetworksData(namespace);\n this.resetNetwork = (namespace) => {\n ChainController.resetNetwork(namespace);\n };\n this.addConnector = connector => {\n ConnectorController.addConnector(connector);\n };\n this.resetWcConnection = () => {\n ConnectionController.resetWcConnection();\n };\n this.setAddressExplorerUrl = (addressExplorerUrl, chain) => {\n AccountController.setAddressExplorerUrl(addressExplorerUrl, chain);\n };\n this.setSmartAccountDeployed = (isDeployed, chain) => {\n AccountController.setSmartAccountDeployed(isDeployed, chain);\n };\n this.setSmartAccountEnabledNetworks = (smartAccountEnabledNetworks, chain) => {\n ChainController.setSmartAccountEnabledNetworks(smartAccountEnabledNetworks, chain);\n };\n this.setPreferredAccountType = (preferredAccountType, chain) => {\n AccountController.setPreferredAccountType(preferredAccountType, chain);\n };\n this.setEIP6963Enabled = enabled => {\n OptionsController.setEIP6963Enabled(enabled);\n };\n this.handleUnsafeRPCRequest = () => {\n if (this.isOpen()) {\n // If we are on the modal but there is no transaction stack, close the modal\n if (this.isTransactionStackEmpty()) {\n return;\n }\n // Check if we need to replace or redirect\n this.redirect('ApproveTransaction');\n }\n else {\n // If called from outside the modal, open ApproveTransaction\n this.open({ view: 'ApproveTransaction' });\n }\n };\n this.options = options;\n this.version = options.sdkVersion;\n this.caipNetworks = this.extendCaipNetworks(options);\n this.chainNamespaces = this.getChainNamespacesSet(options.adapters, this.caipNetworks);\n this.defaultCaipNetwork = this.extendDefaultCaipNetwork(options);\n this.chainAdapters = this.createAdapters(options.adapters);\n this.readyPromise = this.initialize(options);\n }\n getChainNamespacesSet(adapters, caipNetworks) {\n const adapterNamespaces = adapters\n ?.map(adapter => adapter.namespace)\n .filter((namespace) => Boolean(namespace));\n if (adapterNamespaces?.length) {\n return [...new Set(adapterNamespaces)];\n }\n const networkNamespaces = caipNetworks?.map(network => network.chainNamespace);\n return [...new Set(networkNamespaces)];\n }\n async initialize(options) {\n this.initializeProjectSettings(options);\n this.initControllers(options);\n await this.initChainAdapters();\n this.sendInitializeEvent(options);\n await this.syncExistingConnection();\n this.remoteFeatures = await ConfigUtil.fetchRemoteFeatures(options);\n OptionsController.setRemoteFeatures(this.remoteFeatures);\n if (this.remoteFeatures.onramp) {\n OnRampController.setOnrampProviders(this.remoteFeatures.onramp);\n }\n // Check allowed origins only if email or social features are enabled\n if (OptionsController.state.remoteFeatures?.email ||\n (Array.isArray(OptionsController.state.remoteFeatures?.socials) &&\n OptionsController.state.remoteFeatures?.socials.length > 0)) {\n await this.checkAllowedOrigins();\n }\n }\n async checkAllowedOrigins() {\n const allowedOrigins = await ApiController.fetchAllowedOrigins();\n if (allowedOrigins && CoreHelperUtil.isClient()) {\n const currentOrigin = window.location.origin;\n const isOriginAllowed = WcHelpersUtil.isOriginAllowed(currentOrigin, allowedOrigins, WcConstantsUtil.DEFAULT_ALLOWED_ANCESTORS);\n if (!isOriginAllowed) {\n AlertController.open(ErrorUtil.ALERT_ERRORS.INVALID_APP_CONFIGURATION, 'error');\n }\n }\n else {\n AlertController.open(ErrorUtil.ALERT_ERRORS.PROJECT_ID_NOT_CONFIGURED, 'error');\n }\n }\n sendInitializeEvent(options) {\n const { ...optionsCopy } = options;\n delete optionsCopy.adapters;\n delete optionsCopy.universalProvider;\n EventsController.sendEvent({\n type: 'track',\n event: 'INITIALIZE',\n properties: {\n ...optionsCopy,\n networks: options.networks.map(n => n.id),\n siweConfig: {\n options: options.siweConfig?.options || {}\n }\n }\n });\n }\n // -- Controllers initialization ---------------------------------------------------\n initControllers(options) {\n this.initializeOptionsController(options);\n this.initializeChainController(options);\n this.initializeThemeController(options);\n this.initializeConnectionController(options);\n this.initializeConnectorController();\n }\n initializeThemeController(options) {\n if (options.themeMode) {\n ThemeController.setThemeMode(options.themeMode);\n }\n if (options.themeVariables) {\n ThemeController.setThemeVariables(options.themeVariables);\n }\n }\n initializeChainController(options) {\n if (!this.connectionControllerClient || !this.networkControllerClient) {\n throw new Error('ConnectionControllerClient and NetworkControllerClient must be set');\n }\n ChainController.initialize(options.adapters ?? [], this.caipNetworks, {\n connectionControllerClient: this.connectionControllerClient,\n networkControllerClient: this.networkControllerClient\n });\n const network = this.getDefaultNetwork();\n if (network) {\n ChainController.setActiveCaipNetwork(network);\n }\n }\n initializeConnectionController(options) {\n ConnectionController.setWcBasic(options.basic ?? false);\n }\n initializeConnectorController() {\n ConnectorController.initialize(this.chainNamespaces);\n }\n initializeProjectSettings(options) {\n OptionsController.setProjectId(options.projectId);\n OptionsController.setSdkVersion(options.sdkVersion);\n }\n initializeOptionsController(options) {\n OptionsController.setDebug(options.debug !== false);\n // On by default\n OptionsController.setEnableWalletConnect(options.enableWalletConnect !== false);\n OptionsController.setEnableWalletGuide(options.enableWalletGuide !== false);\n OptionsController.setEnableWallets(options.enableWallets !== false);\n OptionsController.setEIP6963Enabled(options.enableEIP6963 !== false);\n OptionsController.setEnableNetworkSwitch(options.enableNetworkSwitch !== false);\n OptionsController.setEnableAuthLogger(options.enableAuthLogger !== false);\n OptionsController.setCustomRpcUrls(options.customRpcUrls);\n OptionsController.setEnableEmbedded(options.enableEmbedded);\n OptionsController.setAllWallets(options.allWallets);\n OptionsController.setIncludeWalletIds(options.includeWalletIds);\n OptionsController.setExcludeWalletIds(options.excludeWalletIds);\n OptionsController.setFeaturedWalletIds(options.featuredWalletIds);\n OptionsController.setTokens(options.tokens);\n OptionsController.setTermsConditionsUrl(options.termsConditionsUrl);\n OptionsController.setPrivacyPolicyUrl(options.privacyPolicyUrl);\n OptionsController.setCustomWallets(options.customWallets);\n OptionsController.setFeatures(options.features);\n OptionsController.setAllowUnsupportedChain(options.allowUnsupportedChain);\n OptionsController.setUniversalProviderConfigOverride(options.universalProviderConfigOverride);\n OptionsController.setPreferUniversalLinks(options.experimental_preferUniversalLinks);\n // Save option in controller\n OptionsController.setDefaultAccountTypes(options.defaultAccountTypes);\n // Get stored account types\n const storedAccountTypes = StorageUtil.getPreferredAccountTypes() || {};\n const defaultTypes = { ...OptionsController.state.defaultAccountTypes, ...storedAccountTypes };\n AccountController.setPreferredAccountTypes(defaultTypes);\n const defaultMetaData = this.getDefaultMetaData();\n if (!options.metadata && defaultMetaData) {\n options.metadata = defaultMetaData;\n }\n OptionsController.setMetadata(options.metadata);\n OptionsController.setDisableAppend(options.disableAppend);\n OptionsController.setEnableEmbedded(options.enableEmbedded);\n OptionsController.setSIWX(options.siwx);\n if (!options.projectId) {\n AlertController.open(ErrorUtil.ALERT_ERRORS.PROJECT_ID_NOT_CONFIGURED, 'error');\n return;\n }\n const evmAdapter = options.adapters?.find(adapter => adapter.namespace === ConstantsUtil.CHAIN.EVM);\n // Set the SIWE client for EVM chains\n if (evmAdapter) {\n if (options.siweConfig) {\n if (options.siwx) {\n throw new Error('Cannot set both `siweConfig` and `siwx` options');\n }\n OptionsController.setSIWX(options.siweConfig.mapToSIWX());\n }\n }\n }\n getDefaultMetaData() {\n if (CoreHelperUtil.isClient()) {\n return {\n name: document.getElementsByTagName('title')?.[0]?.textContent || '',\n description: document.querySelector('meta[property=\"og:description\"]')?.content || '',\n url: window.location.origin,\n icons: [document.querySelector('link[rel~=\"icon\"]')?.href || '']\n };\n }\n return null;\n }\n // -- Network Initialization ---------------------------------------------------\n setUnsupportedNetwork(chainId) {\n const namespace = this.getActiveChainNamespace();\n if (namespace) {\n const unsupportedNetwork = CaipNetworksUtil.getUnsupportedNetwork(`${namespace}:${chainId}`);\n ChainController.setActiveCaipNetwork(unsupportedNetwork);\n }\n }\n getDefaultNetwork() {\n return CaipNetworksUtil.getCaipNetworkFromStorage(this.defaultCaipNetwork);\n }\n extendCaipNetwork(network, options) {\n const extendedNetwork = CaipNetworksUtil.extendCaipNetwork(network, {\n customNetworkImageUrls: options.chainImages,\n projectId: options.projectId\n });\n return extendedNetwork;\n }\n extendCaipNetworks(options) {\n const extendedNetworks = CaipNetworksUtil.extendCaipNetworks(options.networks, {\n customNetworkImageUrls: options.chainImages,\n customRpcUrls: options.customRpcUrls,\n projectId: options.projectId\n });\n return extendedNetworks;\n }\n extendDefaultCaipNetwork(options) {\n const defaultNetwork = options.networks.find(n => n.id === options.defaultNetwork?.id);\n const extendedNetwork = defaultNetwork\n ? CaipNetworksUtil.extendCaipNetwork(defaultNetwork, {\n customNetworkImageUrls: options.chainImages,\n customRpcUrls: options.customRpcUrls,\n projectId: options.projectId\n })\n : undefined;\n return extendedNetwork;\n }\n async disconnectNamespace(namespace) {\n try {\n const adapter = this.getAdapter(namespace);\n const provider = ProviderUtil.getProvider(namespace);\n const providerType = ProviderUtil.getProviderId(namespace);\n const { caipAddress } = ChainController.getAccountData(namespace) || {};\n this.setLoading(true, namespace);\n if (caipAddress && adapter?.disconnect) {\n await adapter.disconnect({ provider, providerType });\n }\n StorageUtil.removeConnectedNamespace(namespace);\n ProviderUtil.resetChain(namespace);\n this.setUser(undefined, namespace);\n this.setStatus('disconnected', namespace);\n this.setConnectedWalletInfo(undefined, namespace);\n ConnectorController.removeConnectorId(namespace);\n ChainController.resetAccount(namespace);\n ChainController.resetNetwork(namespace);\n this.setLoading(false, namespace);\n }\n catch (error) {\n this.setLoading(false, namespace);\n throw new Error(`Failed to disconnect chain ${namespace}: ${error.message}`);\n }\n }\n // -- Client Initialization ---------------------------------------------------\n createClients() {\n this.connectionControllerClient = {\n connectWalletConnect: async () => {\n const activeChain = ChainController.state.activeChain;\n const adapter = this.getAdapter(activeChain);\n const chainId = this.getCaipNetwork(activeChain)?.id;\n if (!adapter) {\n throw new Error('Adapter not found');\n }\n const result = await adapter.connectWalletConnect(chainId);\n this.close();\n this.setClientId(result?.clientId || null);\n StorageUtil.setConnectedNamespaces([...ChainController.state.chains.keys()]);\n this.chainNamespaces.forEach(namespace => {\n ConnectorController.setConnectorId(UtilConstantsUtil.CONNECTOR_TYPE_WALLET_CONNECT, namespace);\n });\n await this.syncWalletConnectAccount();\n },\n connectExternal: async ({ id, info, type, provider, chain, caipNetwork, socialUri }) => {\n const activeChain = ChainController.state.activeChain;\n const chainToUse = chain || activeChain;\n const adapter = this.getAdapter(chainToUse);\n if (chain && chain !== activeChain && !caipNetwork) {\n const toConnectNetwork = this.getCaipNetworks().find(network => network.chainNamespace === chain);\n if (toConnectNetwork) {\n this.setCaipNetwork(toConnectNetwork);\n }\n }\n if (!adapter) {\n throw new Error('Adapter not found');\n }\n const fallbackCaipNetwork = this.getCaipNetwork(chainToUse);\n const res = await adapter.connect({\n id,\n info,\n type,\n provider,\n socialUri,\n chainId: caipNetwork?.id || fallbackCaipNetwork?.id,\n rpcUrl: caipNetwork?.rpcUrls?.default?.http?.[0] ||\n fallbackCaipNetwork?.rpcUrls?.default?.http?.[0]\n });\n if (!res) {\n return;\n }\n StorageUtil.addConnectedNamespace(chainToUse);\n this.syncProvider({ ...res, chainNamespace: chainToUse });\n /*\n * SyncAllAccounts already set the accounts in the state\n * and its more efficient to use the stored accounts rather than fetching them again\n */\n const syncedAccounts = AccountController.state.allAccounts;\n const { accounts } = syncedAccounts?.length > 0\n ? // eslint-disable-next-line line-comment-position\n // Using new array else the accounts will have the same reference and react will not re-render\n { accounts: [...syncedAccounts] }\n : await adapter.getAccounts({ namespace: chainToUse, id });\n this.setAllAccounts(accounts, chainToUse);\n this.setStatus('connected', chainToUse);\n this.syncConnectedWalletInfo(chainToUse);\n },\n reconnectExternal: async ({ id, info, type, provider }) => {\n const namespace = ChainController.state.activeChain;\n const adapter = this.getAdapter(namespace);\n if (adapter?.reconnect) {\n await adapter?.reconnect({ id, info, type, provider, chainId: this.getCaipNetwork()?.id });\n StorageUtil.addConnectedNamespace(namespace);\n this.syncConnectedWalletInfo(namespace);\n }\n },\n disconnect: async (chainNamespace) => {\n const chainsToDisconnect = getChainsToDisconnect(chainNamespace);\n try {\n // Reset send state when disconnecting\n const disconnectResults = await Promise.allSettled(chainsToDisconnect.map(async ([ns]) => this.disconnectNamespace(ns)));\n SendController.resetSend();\n ConnectionController.resetWcConnection();\n await SIWXUtil.clearSessions();\n ConnectorController.setFilterByNamespace(undefined);\n const failures = disconnectResults.filter((result) => result.status === 'rejected');\n if (failures.length > 0) {\n throw new Error(failures.map(f => f.reason.message).join(', '));\n }\n StorageUtil.deleteConnectedSocialProvider();\n EventsController.sendEvent({\n type: 'track',\n event: 'DISCONNECT_SUCCESS',\n properties: {\n namespace: chainNamespace || 'all'\n }\n });\n }\n catch (error) {\n throw new Error(`Failed to disconnect chains: ${error.message}`);\n }\n },\n checkInstalled: (ids) => {\n if (!ids) {\n return Boolean(window.ethereum);\n }\n return ids.some(id => Boolean(window.ethereum?.[String(id)]));\n },\n signMessage: async (message) => {\n const adapter = this.getAdapter(ChainController.state.activeChain);\n const result = await adapter?.signMessage({\n message,\n address: AccountController.state.address,\n provider: ProviderUtil.getProvider(ChainController.state.activeChain)\n });\n return result?.signature || '';\n },\n sendTransaction: async (args) => {\n const namespace = args.chainNamespace;\n if (CoreConstantsUtil.SEND_SUPPORTED_NAMESPACES.includes(namespace)) {\n const adapter = this.getAdapter(ChainController.state.activeChain);\n const provider = ProviderUtil.getProvider(namespace);\n const result = await adapter?.sendTransaction({\n ...args,\n caipNetwork: this.getCaipNetwork(),\n provider\n });\n return result?.hash || '';\n }\n return '';\n },\n estimateGas: async (args) => {\n if (args.chainNamespace === ConstantsUtil.CHAIN.EVM) {\n const adapter = this.getAdapter(ChainController.state.activeChain);\n const provider = ProviderUtil.getProvider(ChainController.state.activeChain);\n const caipNetwork = this.getCaipNetwork();\n if (!caipNetwork) {\n throw new Error('CaipNetwork is undefined');\n }\n const result = await adapter?.estimateGas({\n ...args,\n provider,\n caipNetwork\n });\n return result?.gas || 0n;\n }\n return 0n;\n },\n getEnsAvatar: async () => {\n await this.syncIdentity({\n address: AccountController.state.address,\n chainId: Number(this.getCaipNetwork()?.id),\n chainNamespace: ChainController.state.activeChain\n });\n return AccountController.state.profileImage || false;\n },\n getEnsAddress: async (name) => await WcHelpersUtil.resolveReownName(name),\n writeContract: async (args) => {\n const adapter = this.getAdapter(ChainController.state.activeChain);\n const caipNetwork = this.getCaipNetwork();\n const caipAddress = this.getCaipAddress();\n const provider = ProviderUtil.getProvider(ChainController.state.activeChain);\n if (!caipNetwork || !caipAddress) {\n throw new Error('CaipNetwork or CaipAddress is undefined');\n }\n const result = await adapter?.writeContract({ ...args, caipNetwork, provider, caipAddress });\n return result?.hash;\n },\n parseUnits: (value, decimals) => {\n const adapter = this.getAdapter(ChainController.state.activeChain);\n return adapter?.parseUnits({ value, decimals }) ?? 0n;\n },\n formatUnits: (value, decimals) => {\n const adapter = this.getAdapter(ChainController.state.activeChain);\n return adapter?.formatUnits({ value, decimals }) ?? '0';\n },\n getCapabilities: async (params) => {\n const adapter = this.getAdapter(ChainController.state.activeChain);\n return await adapter?.getCapabilities(params);\n },\n grantPermissions: async (params) => {\n const adapter = this.getAdapter(ChainController.state.activeChain);\n return await adapter?.grantPermissions(params);\n },\n revokePermissions: async (params) => {\n const adapter = this.getAdapter(ChainController.state.activeChain);\n if (adapter?.revokePermissions) {\n return await adapter.revokePermissions(params);\n }\n return '0x';\n },\n walletGetAssets: async (params) => {\n const adapter = this.getAdapter(ChainController.state.activeChain);\n return (await adapter?.walletGetAssets(params)) ?? {};\n },\n updateBalance: (namespace) => {\n const caipNetwork = this.getCaipNetwork(namespace);\n if (!caipNetwork || !AccountController.state.address) {\n return;\n }\n this.updateNativeBalance(AccountController.state.address, caipNetwork?.id, namespace);\n }\n };\n this.networkControllerClient = {\n switchCaipNetwork: async (caipNetwork) => await this.switchCaipNetwork(caipNetwork),\n // eslint-disable-next-line @typescript-eslint/require-await\n getApprovedCaipNetworksData: async () => this.getApprovedCaipNetworksData()\n };\n ConnectionController.setClient(this.connectionControllerClient);\n }\n getApprovedCaipNetworksData() {\n const providerType = ProviderUtil.getProviderId(ChainController.state.activeChain);\n if (providerType === UtilConstantsUtil.CONNECTOR_TYPE_WALLET_CONNECT) {\n const namespaces = this.universalProvider?.session?.namespaces;\n return {\n /*\n * MetaMask Wallet only returns 1 namespace in the session object. This makes it imposible\n * to switch to other networks. Setting supportsAllNetworks to true for MetaMask Wallet\n * will make it possible to switch to other networks.\n */\n supportsAllNetworks: this.universalProvider?.session?.peer?.metadata.name === 'MetaMask Wallet',\n approvedCaipNetworkIds: this.getChainsFromNamespaces(namespaces)\n };\n }\n return { supportsAllNetworks: true, approvedCaipNetworkIds: [] };\n }\n async switchCaipNetwork(caipNetwork) {\n if (!caipNetwork) {\n return;\n }\n const networkNamespace = caipNetwork.chainNamespace;\n const namespaceAddress = this.getAddressByChainNamespace(caipNetwork.chainNamespace);\n if (namespaceAddress) {\n const provider = ProviderUtil.getProvider(networkNamespace);\n const providerType = ProviderUtil.getProviderId(networkNamespace);\n if (caipNetwork.chainNamespace === ChainController.state.activeChain) {\n const adapter = this.getAdapter(networkNamespace);\n await adapter?.switchNetwork({ caipNetwork, provider, providerType });\n }\n else {\n this.setCaipNetwork(caipNetwork);\n if (providerType === UtilConstantsUtil.CONNECTOR_TYPE_WALLET_CONNECT) {\n this.syncWalletConnectAccount();\n }\n else {\n const address = this.getAddressByChainNamespace(networkNamespace);\n if (address) {\n this.syncAccount({\n address,\n chainId: caipNetwork.id,\n chainNamespace: networkNamespace\n });\n }\n }\n }\n }\n else {\n this.setCaipNetwork(caipNetwork);\n }\n }\n getChainsFromNamespaces(namespaces = {}) {\n return Object.values(namespaces).flatMap((namespace) => {\n const chains = (namespace.chains || []);\n const accountsChains = namespace.accounts.map(account => {\n const { chainId, chainNamespace } = ParseUtil.parseCaipAddress(account);\n return `${chainNamespace}:${chainId}`;\n });\n return Array.from(new Set([...chains, ...accountsChains]));\n });\n }\n // -- Adapter Initialization ---------------------------------------------------\n createAdapters(blueprints) {\n this.createClients();\n return this.chainNamespaces.reduce((adapters, namespace) => {\n const blueprint = blueprints?.find(b => b.namespace === namespace);\n if (blueprint) {\n blueprint.construct({\n namespace,\n projectId: this.options?.projectId,\n networks: this.getCaipNetworks()\n });\n adapters[namespace] = blueprint;\n }\n else {\n adapters[namespace] = new UniversalAdapter({\n namespace: namespace,\n networks: this.getCaipNetworks()\n });\n }\n return adapters;\n // eslint-disable-next-line @typescript-eslint/prefer-reduce-type-parameter\n }, {});\n }\n async initChainAdapter(namespace) {\n this.onConnectors(namespace);\n this.listenAdapter(namespace);\n await this.chainAdapters?.[namespace].syncConnectors(this.options, this);\n await this.createUniversalProviderForAdapter(namespace);\n }\n async initChainAdapters() {\n await Promise.all(this.chainNamespaces.map(async (namespace) => {\n await this.initChainAdapter(namespace);\n }));\n }\n onConnectors(chainNamespace) {\n const adapter = this.getAdapter(chainNamespace);\n adapter?.on('connectors', this.setConnectors.bind(this));\n }\n listenAdapter(chainNamespace) {\n const adapter = this.getAdapter(chainNamespace);\n if (!adapter) {\n return;\n }\n const connectionStatus = StorageUtil.getConnectionStatus();\n if (connectionStatus === 'connected') {\n this.setStatus('connecting', chainNamespace);\n }\n else if (connectionStatus === 'disconnected') {\n /*\n * Address cache is kept after disconnecting from the wallet\n * but should be cleared if appkit is launched in disconnected state\n */\n StorageUtil.clearAddressCache();\n this.setStatus(connectionStatus, chainNamespace);\n }\n else {\n this.setStatus(connectionStatus, chainNamespace);\n }\n adapter.on('switchNetwork', ({ address, chainId }) => {\n const caipNetwork = this.getCaipNetworks().find(n => n.id === chainId || n.caipNetworkId === chainId);\n const isSameNamespace = ChainController.state.activeChain === chainNamespace;\n const accountAddress = ChainController.getAccountProp('address', chainNamespace);\n if (caipNetwork) {\n const account = isSameNamespace && address ? address : accountAddress;\n if (account) {\n this.syncAccount({ address: account, chainId: caipNetwork.id, chainNamespace });\n }\n }\n else {\n this.setUnsupportedNetwork(chainId);\n }\n });\n adapter.on('disconnect', this.disconnect.bind(this, chainNamespace));\n adapter.on('connections', connections => {\n this.setConnections(connections, chainNamespace);\n });\n adapter.on('pendingTransactions', () => {\n const address = AccountController.state.address;\n const activeCaipNetwork = ChainController.state.activeCaipNetwork;\n if (!address || !activeCaipNetwork?.id) {\n return;\n }\n this.updateNativeBalance(address, activeCaipNetwork.id, activeCaipNetwork.chainNamespace);\n });\n adapter.on('accountChanged', ({ address, chainId }) => {\n const isActiveChain = ChainController.state.activeChain === chainNamespace;\n if (isActiveChain && chainId) {\n this.syncAccount({\n address,\n chainId,\n chainNamespace\n });\n }\n else if (isActiveChain && ChainController.state.activeCaipNetwork?.id) {\n this.syncAccount({\n address,\n chainId: ChainController.state.activeCaipNetwork?.id,\n chainNamespace\n });\n }\n else {\n this.syncAccountInfo(address, chainId, chainNamespace);\n }\n this.syncAllAccounts(chainNamespace);\n });\n }\n async createUniversalProviderForAdapter(chainNamespace) {\n await this.getUniversalProvider();\n if (this.universalProvider) {\n this.chainAdapters?.[chainNamespace]?.setUniversalProvider?.(this.universalProvider);\n }\n }\n // -- Connection Sync ---------------------------------------------------\n async syncExistingConnection() {\n await Promise.allSettled(this.chainNamespaces.map(namespace => this.syncNamespaceConnection(namespace)));\n }\n async syncNamespaceConnection(namespace) {\n try {\n if (namespace === ConstantsUtil.CHAIN.EVM && CoreHelperUtil.isSafeApp()) {\n ConnectorController.setConnectorId(ConstantsUtil.CONNECTOR_ID.SAFE, namespace);\n }\n const connectorId = ConnectorController.getConnectorId(namespace);\n this.setStatus('connecting', namespace);\n switch (connectorId) {\n case ConstantsUtil.CONNECTOR_ID.WALLET_CONNECT:\n await this.syncWalletConnectAccount();\n break;\n case ConstantsUtil.CONNECTOR_ID.AUTH:\n // Handled during initialization of adapters' auth provider\n break;\n default:\n await this.syncAdapterConnection(namespace);\n }\n }\n catch (err) {\n console.warn(\"AppKit couldn't sync existing connection\", err);\n this.setStatus('disconnected', namespace);\n }\n }\n async syncAdapterConnection(namespace) {\n const adapter = this.getAdapter(namespace);\n const connectorId = ConnectorController.getConnectorId(namespace);\n const caipNetwork = this.getCaipNetwork(namespace);\n const connectors = ConnectorController.getConnectors(namespace);\n const connector = connectors.find(c => c.id === connectorId);\n try {\n if (!adapter || !connector) {\n throw new Error(`Adapter or connector not found for namespace ${namespace}`);\n }\n if (!caipNetwork?.id) {\n throw new Error('CaipNetwork not found');\n }\n const connection = await adapter?.syncConnection({\n namespace,\n id: connector.id,\n chainId: caipNetwork.id,\n rpcUrl: caipNetwork?.rpcUrls?.default?.http?.[0]\n });\n if (connection) {\n const accounts = await adapter?.getAccounts({\n namespace,\n id: connector.id\n });\n if (accounts && accounts.accounts.length > 0) {\n this.setAllAccounts(accounts.accounts, namespace);\n }\n else {\n this.setAllAccounts([CoreHelperUtil.createAccount(namespace, connection.address, 'eoa')], namespace);\n }\n this.syncProvider({ ...connection, chainNamespace: namespace });\n await this.syncAccount({ ...connection, chainNamespace: namespace });\n this.setStatus('connected', namespace);\n }\n else {\n this.setStatus('disconnected', namespace);\n }\n }\n catch (e) {\n this.setStatus('disconnected', namespace);\n }\n }\n async syncWalletConnectAccount() {\n const syncTasks = this.chainNamespaces.map(async (chainNamespace) => {\n const adapter = this.getAdapter(chainNamespace);\n const namespaceAccounts = this.universalProvider?.session?.namespaces?.[chainNamespace]?.accounts || [];\n // We try and find the address for this network in the session object.\n const activeChainId = ChainController.state.activeCaipNetwork?.id;\n const sessionAddress = namespaceAccounts.find(account => {\n const { chainId } = ParseUtil.parseCaipAddress(account);\n return chainId === activeChainId?.toString();\n }) || namespaceAccounts[0];\n if (sessionAddress) {\n const caipAddress = ParseUtil.validateCaipAddress(sessionAddress);\n const { chainId, address } = ParseUtil.parseCaipAddress(caipAddress);\n ProviderUtil.setProviderId(chainNamespace, UtilConstantsUtil.CONNECTOR_TYPE_WALLET_CONNECT);\n if (this.caipNetworks &&\n ChainController.state.activeCaipNetwork &&\n adapter?.namespace !== ConstantsUtil.CHAIN.EVM) {\n const provider = adapter?.getWalletConnectProvider({\n caipNetworks: this.getCaipNetworks(),\n provider: this.universalProvider,\n activeCaipNetwork: ChainController.state.activeCaipNetwork\n });\n ProviderUtil.setProvider(chainNamespace, provider);\n }\n else {\n ProviderUtil.setProvider(chainNamespace, this.universalProvider);\n }\n ConnectorController.setConnectorId(ConstantsUtil.CONNECTOR_ID.WALLET_CONNECT, chainNamespace);\n StorageUtil.addConnectedNamespace(chainNamespace);\n this.syncWalletConnectAccounts(chainNamespace);\n await this.syncAccount({\n address,\n chainId,\n chainNamespace\n });\n }\n else {\n this.setStatus('disconnected', chainNamespace);\n }\n this.syncConnectedWalletInfo(chainNamespace);\n await ChainController.setApprovedCaipNetworksData(chainNamespace);\n });\n await Promise.all(syncTasks);\n }\n syncWalletConnectAccounts(chainNamespace) {\n const addresses = this.universalProvider?.session?.namespaces?.[chainNamespace]?.accounts\n ?.map(account => {\n const { address } = ParseUtil.parseCaipAddress(account);\n return address;\n })\n .filter((address, index, self) => self.indexOf(address) === index);\n if (addresses) {\n this.setAllAccounts(addresses.map(address => CoreHelperUtil.createAccount(chainNamespace, address, chainNamespace === 'bip122' ? 'payment' : 'eoa')), chainNamespace);\n }\n }\n syncProvider({ type, provider, id, chainNamespace }) {\n ProviderUtil.setProviderId(chainNamespace, type);\n ProviderUtil.setProvider(chainNamespace, provider);\n ConnectorController.setConnectorId(id, chainNamespace);\n }\n async syncAllAccounts(namespace) {\n const connectorId = ConnectorController.getConnectorId(namespace);\n if (!connectorId) {\n return;\n }\n const adapter = this.getAdapter(namespace);\n const accounts = await adapter?.getAccounts({ namespace, id: connectorId });\n if (accounts && accounts.accounts.length > 0) {\n this.setAllAccounts(accounts.accounts, namespace);\n }\n }\n async syncAccount(params) {\n const isActiveNamespace = params.chainNamespace === ChainController.state.activeChain;\n const networkOfChain = ChainController.getCaipNetworkByNamespace(params.chainNamespace, params.chainId);\n const { address, chainId, chainNamespace } = params;\n const { chainId: activeChainId } = StorageUtil.getActiveNetworkProps();\n const chainIdToUse = chainId || activeChainId;\n const isUnsupportedNetwork = ChainController.state.activeCaipNetwork?.name === ConstantsUtil.UNSUPPORTED_NETWORK_NAME;\n const shouldSupportAllNetworks = ChainController.getNetworkProp('supportsAllNetworks', chainNamespace);\n this.setStatus('connected', chainNamespace);\n if (isUnsupportedNetwork && !shouldSupportAllNetworks) {\n return;\n }\n if (chainIdToUse) {\n let caipNetwork = this.getCaipNetworks().find(n => n.id.toString() === chainIdToUse.toString());\n let fallbackCaipNetwork = this.getCaipNetworks().find(n => n.chainNamespace === chainNamespace);\n // If doesn't support all networks, we need to use approved networks\n if (!shouldSupportAllNetworks && !caipNetwork && !fallbackCaipNetwork) {\n // Connection can be requested for a chain that is not supported by the wallet so we need to use approved networks here\n const caipNetworkIds = this.getApprovedCaipNetworkIds() || [];\n const caipNetworkId = caipNetworkIds.find(id => ParseUtil.parseCaipNetworkId(id)?.chainId === chainIdToUse.toString());\n const fallBackCaipNetworkId = caipNetworkIds.find(id => ParseUtil.parseCaipNetworkId(id)?.chainNamespace === chainNamespace);\n caipNetwork = this.getCaipNetworks().find(n => n.caipNetworkId === caipNetworkId);\n fallbackCaipNetwork = this.getCaipNetworks().find(n => n.caipNetworkId === fallBackCaipNetworkId ||\n // This is a workaround used in Solana network to support deprecated caipNetworkId\n ('deprecatedCaipNetworkId' in n && n.deprecatedCaipNetworkId === fallBackCaipNetworkId));\n }\n const network = caipNetwork || fallbackCaipNetwork;\n if (network?.chainNamespace === ChainController.state.activeChain) {\n // If the network is unsupported and the user doesn't allow unsupported chains, we show the unsupported chain UI\n if (OptionsController.state.enableNetworkSwitch &&\n !OptionsController.state.allowUnsupportedChain &&\n ChainController.state.activeCaipNetwork?.name === ConstantsUtil.UNSUPPORTED_NETWORK_NAME) {\n ChainController.showUnsupportedChainUI();\n }\n else {\n this.setCaipNetwork(network);\n }\n }\n else if (!isActiveNamespace) {\n if (networkOfChain) {\n this.setCaipNetworkOfNamespace(networkOfChain, chainNamespace);\n }\n }\n this.syncConnectedWalletInfo(chainNamespace);\n if (!HelpersUtil.isLowerCaseMatch(address, AccountController.state.address)) {\n this.syncAccountInfo(address, network?.id, chainNamespace);\n }\n if (isActiveNamespace) {\n await this.syncBalance({ address, chainId: network?.id, chainNamespace });\n }\n else {\n await this.syncBalance({ address, chainId: networkOfChain?.id, chainNamespace });\n }\n }\n }\n async syncAccountInfo(address, chainId, chainNamespace) {\n const caipAddress = this.getCaipAddress(chainNamespace);\n const newChainId = chainId || caipAddress?.split(':')[1];\n if (!newChainId) {\n return;\n }\n const newCaipAddress = `${chainNamespace}:${newChainId}:${address}`;\n this.setCaipAddress(newCaipAddress, chainNamespace);\n await this.syncIdentity({\n address,\n chainId: newChainId,\n chainNamespace\n });\n }\n async syncReownName(address, chainNamespace) {\n try {\n const registeredWcNames = await this.getReownName(address);\n if (registeredWcNames[0]) {\n const wcName = registeredWcNames[0];\n this.setProfileName(wcName.name, chainNamespace);\n }\n else {\n this.setProfileName(null, chainNamespace);\n }\n }\n catch {\n this.setProfileName(null, chainNamespace);\n }\n }\n syncConnectedWalletInfo(chainNamespace) {\n const connectorId = ConnectorController.getConnectorId(chainNamespace);\n const providerType = ProviderUtil.getProviderId(chainNamespace);\n if (providerType === UtilConstantsUtil.CONNECTOR_TYPE_ANNOUNCED ||\n providerType === UtilConstantsUtil.CONNECTOR_TYPE_INJECTED) {\n if (connectorId) {\n const connector = this.getConnectors().find(c => c.id === connectorId);\n if (connector) {\n const { info, name, imageUrl } = connector;\n const icon = imageUrl || this.getConnectorImage(connector);\n this.setConnectedWalletInfo({ name, icon, ...info }, chainNamespace);\n }\n }\n }\n else if (providerType === UtilConstantsUtil.CONNECTOR_TYPE_WALLET_CONNECT) {\n const provider = ProviderUtil.getProvider(chainNamespace);\n if (provider?.session) {\n this.setConnectedWalletInfo({\n ...provider.session.peer.metadata,\n name: provider.session.peer.metadata.name,\n icon: provider.session.peer.metadata.icons?.[0]\n }, chainNamespace);\n }\n }\n else if (connectorId) {\n if (connectorId === ConstantsUtil.CONNECTOR_ID.COINBASE) {\n const connector = this.getConnectors().find(c => c.id === ConstantsUtil.CONNECTOR_ID.COINBASE);\n this.setConnectedWalletInfo({ name: 'Coinbase Wallet', icon: this.getConnectorImage(connector) }, chainNamespace);\n }\n }\n }\n async syncBalance(params) {\n const caipNetwork = NetworkUtil.getNetworksByNamespace(this.getCaipNetworks(), params.chainNamespace).find(n => n.id.toString() === params.chainId?.toString());\n if (!caipNetwork || !params.chainId) {\n return;\n }\n await this.updateNativeBalance(params.address, params.chainId, params.chainNamespace);\n }\n async ready() {\n await this.readyPromise;\n }\n async updateNativeBalance(address, chainId, namespace) {\n const adapter = this.getAdapter(namespace);\n const caipNetwork = ChainController.getCaipNetworkByNamespace(namespace, chainId);\n if (adapter) {\n const balance = await adapter.getBalance({\n address,\n chainId,\n caipNetwork,\n tokens: this.options.tokens\n });\n this.setBalance(balance.balance, balance.symbol, namespace);\n return balance;\n }\n return undefined;\n }\n // -- Universal Provider ---------------------------------------------------\n async initializeUniversalAdapter() {\n const logger = LoggerUtil.createLogger((error, ...args) => {\n if (error) {\n this.handleAlertError(error);\n }\n // eslint-disable-next-line no-console\n console.error(...args);\n });\n const universalProviderOptions = {\n projectId: this.options?.projectId,\n metadata: {\n name: this.options?.metadata ? this.options?.metadata.name : '',\n description: this.options?.metadata ? this.options?.metadata.description : '',\n url: this.options?.metadata ? this.options?.metadata.url : '',\n icons: this.options?.metadata ? this.options?.metadata.icons : ['']\n },\n logger\n };\n OptionsController.setManualWCControl(Boolean(this.options?.manualWCControl));\n this.universalProvider =\n this.options.universalProvider ?? (await UniversalProvider.init(universalProviderOptions));\n this.listenWalletConnect();\n }\n listenWalletConnect() {\n if (this.universalProvider) {\n this.universalProvider.on('display_uri', (uri) => {\n ConnectionController.setUri(uri);\n });\n this.universalProvider.on('connect', ConnectionController.finalizeWcConnection);\n this.universalProvider.on('disconnect', () => {\n this.chainNamespaces.forEach(namespace => {\n this.resetAccount(namespace);\n });\n ConnectionController.resetWcConnection();\n });\n this.universalProvider.on('chainChanged', (chainId) => {\n // eslint-disable-next-line eqeqeq\n const caipNetwork = this.getCaipNetworks().find(c => c.id == chainId);\n const currentCaipNetwork = this.getCaipNetwork();\n if (!caipNetwork) {\n this.setUnsupportedNetwork(chainId);\n return;\n }\n if (currentCaipNetwork?.id !== caipNetwork?.id) {\n this.setCaipNetwork(caipNetwork);\n }\n });\n this.universalProvider.on('session_event', (callbackData) => {\n if (WcHelpersUtil.isSessionEventData(callbackData)) {\n const { name, data } = callbackData.params.event;\n if (name === 'accountsChanged' &&\n Array.isArray(data) &&\n CoreHelperUtil.isCaipAddress(data[0])) {\n this.syncAccount(ParseUtil.parseCaipAddress(data[0]));\n }\n }\n });\n }\n }\n createUniversalProvider() {\n if (!this.universalProviderInitPromise &&\n CoreHelperUtil.isClient() &&\n this.options?.projectId) {\n this.universalProviderInitPromise = this.initializeUniversalAdapter();\n }\n return this.universalProviderInitPromise;\n }\n async getUniversalProvider() {\n if (!this.universalProvider) {\n try {\n await this.createUniversalProvider();\n }\n catch (err) {\n EventsController.sendEvent({\n type: 'error',\n event: 'INTERNAL_SDK_ERROR',\n properties: {\n errorType: 'UniversalProviderInitError',\n errorMessage: err instanceof Error ? err.message : 'Unknown',\n uncaught: false\n }\n });\n // eslint-disable-next-line no-console\n console.error('AppKit:getUniversalProvider - Cannot create provider', err);\n }\n }\n return this.universalProvider;\n }\n // - Utils -------------------------------------------------------------------\n handleAlertError(error) {\n const matchedUniversalProviderError = Object.entries(ErrorUtil.UniversalProviderErrors).find(([, { message }]) => error.message.includes(message));\n const [errorKey, errorValue] = matchedUniversalProviderError ?? [];\n const { message, alertErrorKey } = errorValue ?? {};\n if (errorKey && message && !this.reportedAlertErrors[errorKey]) {\n const alertError = ErrorUtil.ALERT_ERRORS[alertErrorKey];\n if (alertError) {\n AlertController.open(alertError, 'error');\n this.reportedAlertErrors[errorKey] = true;\n }\n }\n }\n getAdapter(namespace) {\n if (!namespace) {\n return undefined;\n }\n return this.chainAdapters?.[namespace];\n }\n createAdapter(blueprint) {\n if (!blueprint) {\n return;\n }\n const namespace = blueprint.namespace;\n if (!namespace) {\n return;\n }\n this.createClients();\n const adapterBlueprint = blueprint;\n adapterBlueprint.namespace = namespace;\n adapterBlueprint.construct({\n namespace,\n projectId: this.options?.projectId,\n networks: this.getCaipNetworks()\n });\n if (!this.chainNamespaces.includes(namespace)) {\n this.chainNamespaces.push(namespace);\n }\n if (this.chainAdapters) {\n this.chainAdapters[namespace] = adapterBlueprint;\n }\n }\n // -- Public -------------------------------------------------------------------\n async open(options) {\n await this.injectModalUi();\n if (options?.uri) {\n ConnectionController.setUri(options.uri);\n }\n if (options?.arguments) {\n switch (options?.view) {\n case 'Swap':\n return ModalController.open({ ...options, data: { swap: options.arguments } });\n default:\n }\n }\n return ModalController.open(options);\n }\n async close() {\n await this.injectModalUi();\n ModalController.close();\n }\n setLoading(loading, namespace) {\n ModalController.setLoading(loading, namespace);\n }\n async disconnect(chainNamespace) {\n await ConnectionController.disconnect(chainNamespace);\n }\n getSIWX() {\n return OptionsController.state.siwx;\n }\n // -- review these -------------------------------------------------------------------\n getError() {\n return '';\n }\n getChainId() {\n return ChainController.state.activeCaipNetwork?.id;\n }\n async switchNetwork(appKitNetwork) {\n const network = this.getCaipNetworks().find(n => n.id === appKitNetwork.id);\n if (!network) {\n AlertController.open(ErrorUtil.ALERT_ERRORS.SWITCH_NETWORK_NOT_FOUND, 'error');\n return;\n }\n await ChainController.switchActiveNetwork(network);\n }\n getWalletProvider() {\n return ChainController.state.activeChain\n ? ProviderUtil.state.providers[ChainController.state.activeChain]\n : null;\n }\n getWalletProviderType() {\n return ProviderUtil.getProviderId(ChainController.state.activeChain);\n }\n subscribeProviders(callback) {\n return ProviderUtil.subscribeProviders(callback);\n }\n getThemeMode() {\n return ThemeController.state.themeMode;\n }\n getThemeVariables() {\n return ThemeController.state.themeVariables;\n }\n setThemeMode(themeMode) {\n ThemeController.setThemeMode(themeMode);\n setColorTheme(ThemeController.state.themeMode);\n }\n setTermsConditionsUrl(termsConditionsUrl) {\n OptionsController.setTermsConditionsUrl(termsConditionsUrl);\n }\n setPrivacyPolicyUrl(privacyPolicyUrl) {\n OptionsController.setPrivacyPolicyUrl(privacyPolicyUrl);\n }\n setThemeVariables(themeVariables) {\n ThemeController.setThemeVariables(themeVariables);\n setThemeVariables(ThemeController.state.themeVariables);\n }\n subscribeTheme(callback) {\n return ThemeController.subscribe(callback);\n }\n getWalletInfo() {\n return AccountController.state.connectedWalletInfo;\n }\n getAccount(namespace) {\n const authConnector = ConnectorController.getAuthConnector(namespace);\n const accountState = ChainController.getAccountData(namespace);\n const activeChain = ChainController.state.activeChain;\n const activeConnectorId = StorageUtil.getConnectedConnectorId(namespace || activeChain);\n if (!accountState) {\n return undefined;\n }\n return {\n allAccounts: accountState.allAccounts,\n caipAddress: accountState.caipAddress,\n address: CoreHelperUtil.getPlainAddress(accountState.caipAddress),\n isConnected: Boolean(accountState.caipAddress),\n status: accountState.status,\n embeddedWalletInfo: authConnector && activeConnectorId === ConstantsUtil.CONNECTOR_ID.AUTH\n ? {\n user: accountState.user\n ? {\n ...accountState.user,\n /*\n * Getting the username from the chain controller works well for social logins,\n * but Farcaster uses a different connection flow and doesn't emit the username via events.\n * Since the username is stored in local storage before the chain controller updates,\n * it's safe to use the local storage value here.\n */\n username: StorageUtil.getConnectedSocialUsername()\n }\n : undefined,\n authProvider: accountState.socialProvider ||\n 'email',\n accountType: accountState.preferredAccountTypes?.[namespace || activeChain],\n isSmartAccountDeployed: Boolean(accountState.smartAccountDeployed)\n }\n : undefined\n };\n }\n subscribeAccount(callback, namespace) {\n const updateVal = () => {\n const account = this.getAccount(namespace);\n if (!account) {\n return;\n }\n callback(account);\n };\n if (namespace) {\n ChainController.subscribeChainProp('accountState', updateVal, namespace);\n }\n else {\n ChainController.subscribe(updateVal);\n }\n ConnectorController.subscribe(updateVal);\n }\n subscribeNetwork(callback) {\n return ChainController.subscribe(({ activeCaipNetwork }) => {\n callback({\n caipNetwork: activeCaipNetwork,\n chainId: activeCaipNetwork?.id,\n caipNetworkId: activeCaipNetwork?.caipNetworkId\n });\n });\n }\n subscribeWalletInfo(callback) {\n return AccountController.subscribeKey('connectedWalletInfo', callback);\n }\n subscribeShouldUpdateToAddress(callback) {\n AccountController.subscribeKey('shouldUpdateToAddress', callback);\n }\n subscribeCaipNetworkChange(callback) {\n ChainController.subscribeKey('activeCaipNetwork', callback);\n }\n getState() {\n return PublicStateController.state;\n }\n subscribeState(callback) {\n return PublicStateController.subscribe(callback);\n }\n showErrorMessage(message) {\n SnackController.showError(message);\n }\n showSuccessMessage(message) {\n SnackController.showSuccess(message);\n }\n getEvent() {\n return { ...EventsController.state };\n }\n subscribeEvents(callback) {\n return EventsController.subscribe(callback);\n }\n replace(route) {\n RouterController.replace(route);\n }\n redirect(route) {\n RouterController.push(route);\n }\n popTransactionStack(status) {\n RouterController.popTransactionStack(status);\n }\n isOpen() {\n return ModalController.state.open;\n }\n isTransactionStackEmpty() {\n return RouterController.state.transactionStack.length === 0;\n }\n static getInstance() {\n return this.instance;\n }\n updateFeatures(newFeatures) {\n OptionsController.setFeatures(newFeatures);\n }\n updateRemoteFeatures(newRemoteFeatures) {\n OptionsController.setRemoteFeatures(newRemoteFeatures);\n }\n updateOptions(newOptions) {\n const currentOptions = OptionsController.state || {};\n const updatedOptions = { ...currentOptions, ...newOptions };\n OptionsController.setOptions(updatedOptions);\n }\n setConnectMethodsOrder(connectMethodsOrder) {\n OptionsController.setConnectMethodsOrder(connectMethodsOrder);\n }\n setWalletFeaturesOrder(walletFeaturesOrder) {\n OptionsController.setWalletFeaturesOrder(walletFeaturesOrder);\n }\n setCollapseWallets(collapseWallets) {\n OptionsController.setCollapseWallets(collapseWallets);\n }\n setSocialsOrder(socialsOrder) {\n OptionsController.setSocialsOrder(socialsOrder);\n }\n getConnectMethodsOrder() {\n return WalletUtil.getConnectOrderMethod(OptionsController.state.features, ConnectorController.getConnectors());\n }\n /**\n * Adds a network to an existing adapter in AppKit.\n * @param namespace - The chain namespace to add the network to (e.g. 'eip155', 'solana')\n * @param network - The network configuration to add\n * @throws Error if adapter for namespace doesn't exist\n */\n addNetwork(namespace, network) {\n if (this.chainAdapters && !this.chainAdapters[namespace]) {\n throw new Error(`Adapter for namespace ${namespace} doesn't exist`);\n }\n const extendedNetwork = this.extendCaipNetwork(network, this.options);\n if (!this.getCaipNetworks().find(n => n.id === extendedNetwork.id)) {\n ChainController.addNetwork(extendedNetwork);\n }\n }\n /**\n * Removes a network from an existing adapter in AppKit.\n * @param namespace - The chain namespace the network belongs to\n * @param networkId - The network ID to remove\n * @throws Error if adapter for namespace doesn't exist or if removing last network\n */\n removeNetwork(namespace, networkId) {\n if (this.chainAdapters && !this.chainAdapters[namespace]) {\n throw new Error(`Adapter for namespace ${namespace} doesn't exist`);\n }\n const networkToRemove = this.getCaipNetworks().find(n => n.id === networkId);\n if (!networkToRemove) {\n return;\n }\n ChainController.removeNetwork(namespace, networkId);\n }\n}\n//# sourceMappingURL=appkit-base-client.js.map","import {} from '@reown/appkit-common';\nimport { AccountController, ConnectionController, ConnectorController, CoreHelperUtil, OptionsController } from '@reown/appkit-controllers';\nimport { AppKitBaseClient } from './appkit-base-client.js';\n// -- Export Controllers -------------------------------------------------------\nexport { AccountController };\n// -- Helpers -------------------------------------------------------------------\nlet isInitialized = false;\n// -- Client --------------------------------------------------------------------\nexport class AppKit extends AppKitBaseClient {\n // -- Overrides --------------------------------------------------------------\n async open(options) {\n // Only open modal when not connected\n const isConnected = ConnectorController.isConnected();\n if (!isConnected) {\n await super.open(options);\n }\n }\n async close() {\n await super.close();\n if (this.options.manualWCControl) {\n ConnectionController.finalizeWcConnection();\n }\n }\n async syncIdentity(_request) {\n return Promise.resolve();\n }\n async syncBalance(_params) {\n return Promise.resolve();\n }\n async injectModalUi() {\n if (!isInitialized && CoreHelperUtil.isClient()) {\n await import('@reown/appkit-scaffold-ui/basic');\n await import('@reown/appkit-scaffold-ui/w3m-modal');\n const isElementCreated = document.querySelector('w3m-modal');\n if (!isElementCreated) {\n const modal = document.createElement('w3m-modal');\n if (!OptionsController.state.disableAppend && !OptionsController.state.enableEmbedded) {\n document.body.insertAdjacentElement('beforeend', modal);\n }\n }\n isInitialized = true;\n }\n }\n}\n//# sourceMappingURL=appkit-core.js.map","export const PACKAGE_VERSION = '1.7.8';\n//# sourceMappingURL=constants.js.map","import { AppKit } from '../src/client/appkit-core.js';\nimport { PACKAGE_VERSION } from './constants.js';\nexport function createAppKit(options) {\n return new AppKit({\n ...options,\n basic: true,\n sdkVersion: `html-core-${PACKAGE_VERSION}`\n });\n}\nexport { AppKit };\n//# sourceMappingURL=core.js.map"],"names":["ConstantsUtil","process","NetworkUtil","P","Big","n","x","e","i","xc","s","y","yc","j","k","l","a","b","bt","ri","ai","r","q","qc","qi","p","t","xe","ye","c","isSafe","h","markToTrack","getUntracked","v","entries","w","ua","_b","_c","CommonConstants","baseUrl","state","subKey","DEFAULT_STATE","api","controller","sub","d","_a","_","uc","to","CommonConstantsUtil","ns","st","accountState","u","o","T","ae","Ne","ue","Yo","Go","Tn","Wo","Xo","Rn","_n","Jo","$n","Y","jn","_e","pt","Yt","Sn","ei","ni","Tt","xt","Cn","oi","Pn","Po","kn","jo","Vn","On","Mn","si","f","gt","fi","li","gi","xn","Ie","yi","$e","mi","wi","bi","Ei","Co","vi","xi","ot","Si","Kn","Fn","Yn","Zn","zn","Oi","Ai","Bi","Ii","je","Ni","Wt","Ui","Xt","Ce","Rt","Gn","le","Wn","Ti","Ri","_i","$i","Li","ji","_t","Ci","Pe","ct","Xn","Pi","Jn","ki","$t","Vi","Qn","Lt","tr","er","nr","Mi","Jt","Di","Ki","Fi","zi","rr","or","ke","En","Ve","ir","sr","cr","ko","E","Vo","ts","ar","ur","Me","fr","de","lr","dr","De","hr","pe","yt","Ke","mr","wr","at","br","He","he","qe","vr","Fe","Sr","Or","Ar","mt","ze","Ze","bs","Br","vs","Ir","jt","Nr","xs","Os","As","V","Ye","ge","Ur","Tr","Is","m","Ns","N","O","F","$","B","A","S","L","U","g","I","R","C","M","D","z","W","J","Ts","Ls","Rr","_r","Cs","$r","Lr","Ps","Ge","jr","ks","Vs","Ms","Ds","wt","qs","Qt","me","we","St","te","Ct","Zs","Pt","kt","We","ut","Cr","Vt","Ot","ee","Mt","be","et","ne","Xe","Ee","ft","Pr","Je","Qe","kr","Vr","Dt","tn","H","At","Mr","Dr","X","Hr","it","nn","qr","Kr","Fr","zr","Zr","ve","rn","Yr","on","sn","Gr","cn","Wr","Ht","an","un","Xr","fn","Jr","lt","dt","K","Qr","Be","zt","vt","Zt","Ut","vn","ln","G","qt","Kt","dn","Ft","re","eo","oe","hn","Q","rt","pn","Bt","no","ro","gn","Se","Gt","oo","io","Mo","so","Do","co","ao","uo","fo","lo","It","ho","po","go","yn","yo","ie","Oe","mo","wo","bo","ht","Nt","se","Et","nt","Ae","ce","Eo","mn","vo","xo","So","Oo","Ao","wn","Bo","Io","No","Uo","To","Ro","_o","$o","Lo","bn","Le","cs","Ue","Re","De.generateKeyPair","De.encodeIss","ls","De.signJWT","us","ds","gs","hs","ps","ys","ms","fs","Fs","Xi","Zi","tt","Z","Qi","ws","es","Yi","_s","Es","fe","Ss","Gi","Rs","Ks","Bs","is","ss","$s","zs","rs","os","js","Us","as","Ji","Wi","Hi","Te","getDefaultLoggerOptions","generatePlatformLogger","css","unsafeCSS","CoreConstantsUtil","UtilConstantsUtil","UniversalProvider","message"],"mappings":"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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84]}