@acedatacloud/nexior 3.362.2 → 3.362.3

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 (320) hide show
  1. package/dist/assets/{ApiCodeButton-BAkOBxie.js → ApiCodeButton-DmY8v9e5.js} +1 -1
  2. package/dist/assets/{ApiCodeDialog-bM2jYt0k.js → ApiCodeDialog-ZrQ31cdo.js} +1 -1
  3. package/dist/assets/{Artifacts-CkTmSnAa.js → Artifacts-DU30PrbA.js} +1 -1
  4. package/dist/assets/{AskUserQuestionCard-CCaEhOiC.js → AskUserQuestionCard-BSkNo5B6.js} +1 -1
  5. package/dist/assets/{AudioPreview-LQ8lEoP-.js → AudioPreview-BQFSqic6.js} +1 -1
  6. package/dist/assets/{Auth-_gOgHSU0.js → Auth-CSMtUyQe.js} +1 -1
  7. package/dist/assets/{Bare-CNmtrwAx.js → Bare-dYKCOh3p.js} +1 -1
  8. package/dist/assets/{BotPlaceholder-CBS4lAjm.js → BotPlaceholder-LUNR8KA6.js} +1 -1
  9. package/dist/assets/{BottomFooter-Bk_ZWz98.js → BottomFooter-DKo3fulF.js} +1 -1
  10. package/dist/assets/{BrowseConnectors-DndkuWdA.js → BrowseConnectors-wm70T8Et.js} +1 -1
  11. package/dist/assets/{BrowserPairingDialog-CPIZhuOj.js → BrowserPairingDialog-DhsWaXHL.js} +1 -1
  12. package/dist/assets/{Callback-Bh4XDEf8.js → Callback-C4nsgWym.js} +1 -1
  13. package/dist/assets/{CodeSnippet-CK5oFt1I.js → CodeSnippet-CSaU41R9.js} +1 -1
  14. package/dist/assets/{Console-DhPXYBDT.js → Console-BxYtZiKP.js} +1 -1
  15. package/dist/assets/{Consumption-CQoAp-2Q.js → Consumption-DeigvrPq.js} +1 -1
  16. package/dist/assets/{Conversation-r8FTBMps.js → Conversation-BxOLEd_B.js} +1 -1
  17. package/dist/assets/{Conversation-DrM-uZU6.js → Conversation-DxHOnUbb.js} +1 -1
  18. package/dist/assets/{CopyToClipboard-Bt4pNx5a.js → CopyToClipboard-B8YmxJt6.js} +1 -1
  19. package/dist/assets/{Detail-CSr9u2KG.js → Detail-gYf9lCLZ.js} +1 -1
  20. package/dist/assets/{Extra-mJj6WzGA.js → Extra-DOKzdi0p.js} +1 -1
  21. package/dist/assets/{FilePreview-YdzEP0Sz.js → FilePreview-BxnxEacb.js} +1 -1
  22. package/dist/assets/{Hailuo-vHQDSZct.js → Hailuo-BkV2gEuB.js} +1 -1
  23. package/dist/assets/{History-DFR9ymyJ.js → History-BA6LIG06.js} +1 -1
  24. package/dist/assets/{ImagePreview-BtYz7VS_.js → ImagePreview-D8qlrS3J.js} +1 -1
  25. package/dist/assets/{ImageWrapper-CyPuHE9N.js → ImageWrapper-BK4v8WW9.js} +1 -1
  26. package/dist/assets/{Index-D1G9rIK2.js → Index-7COUDjVu.js} +1 -1
  27. package/dist/assets/{Index-BSQTk3rZ.js → Index-BHmbPOxX.js} +1 -1
  28. package/dist/assets/{Index-B2kQl_Nl.js → Index-B_KEsjHe.js} +1 -1
  29. package/dist/assets/{Index-D4AvUtiV.js → Index-BbmKEwSG.js} +1 -1
  30. package/dist/assets/Index-Beu1mmsF.js +1 -0
  31. package/dist/assets/{Index-B2tLj-vo.js → Index-Bhn0_eJl.js} +1 -1
  32. package/dist/assets/{Index-CjsRfqWv2.js → Index-C-lKd2nE2.js} +1 -1
  33. package/dist/assets/{Index-Ui9BQQkK.js → Index-C0vN7uy_.js} +1 -1
  34. package/dist/assets/{Index-BNxzh_mB.js → Index-C7FzcV1a.js} +1 -1
  35. package/dist/assets/Index-C95E9MNj.js +1 -0
  36. package/dist/assets/{Index-DOFJea9M.js → Index-CBRCeg0H.js} +1 -1
  37. package/dist/assets/{Index-CLo709z7.js → Index-CCHqZBcF.js} +1 -1
  38. package/dist/assets/{Index-YQBqTqZX.js → Index-CHF28ZI5.js} +1 -1
  39. package/dist/assets/{Index-CXszXqLV.js → Index-CQTE0OSh.js} +1 -1
  40. package/dist/assets/{Index-88JgM0mD.js → Index-CpfPhJzb.js} +1 -1
  41. package/dist/assets/{Index-CK1x76Mr.js → Index-CwV8Utkg.js} +1 -1
  42. package/dist/assets/{Index-B_uHHqnQ.js → Index-Cyz1v4cX.js} +1 -1
  43. package/dist/assets/{Index-mgP9Xz4i.js → Index-D58ebdDE.js} +1 -1
  44. package/dist/assets/{Index-XMu_83Jn.js → Index-DFfu4PfT.js} +1 -1
  45. package/dist/assets/{Index-BBuN1uFz.js → Index-DLlOO9KP.js} +1 -1
  46. package/dist/assets/{Index-Bkn1S261.js → Index-DOzCKfJ8.js} +1 -1
  47. package/dist/assets/{Index-Bbf-APQ0.js → Index-DWpaenVp.js} +1 -1
  48. package/dist/assets/{Index-Dl2CguWw.js → Index-DYFrW-_K.js} +1 -1
  49. package/dist/assets/{Index-DMpNerdn.js → Index-DanHItqS.js} +1 -1
  50. package/dist/assets/{Index-JDa64RPr.js → Index-DqsV33my.js} +1 -1
  51. package/dist/assets/{Index-CvTkZUQP.js → Index-DuhACoUR.js} +1 -1
  52. package/dist/assets/{Index-9_g65T_M.js → Index-Duva2-wr.js} +1 -1
  53. package/dist/assets/{Index-DSOompWN.js → Index-DvCahpg1.js} +1 -1
  54. package/dist/assets/{Index-B1qLgswn.js → Index-GbP5Md7H.js} +1 -1
  55. package/dist/assets/{Index-BoqiiuYt.js → Index-HUbEe1eR.js} +1 -1
  56. package/dist/assets/{Index-BNlrj2wD.js → Index-MGIX_apc.js} +1 -1
  57. package/dist/assets/{Index-CExuBc9s.js → Index-dpAwxSxA.js} +1 -1
  58. package/dist/assets/{Index-DbLuorqR.js → Index-gr2b7csS.js} +1 -1
  59. package/dist/assets/{Index-hVwk1uL4.js → Index-jDK0-rqq.js} +2 -2
  60. package/dist/assets/{Index-3kZfb74S.js → Index-z86-kR96.js} +1 -1
  61. package/dist/assets/{Invitees-DKvjecGv.js → Invitees-DMi4xPeC.js} +1 -1
  62. package/dist/assets/{List-Do1_hkFr.js → List-BcUzsCvV.js} +1 -1
  63. package/dist/assets/{List-CFZ-KClZ.js → List-CV6ZFpJt.js} +1 -1
  64. package/dist/assets/{List-DO-95ZUQ.js → List-CgyZMpyx.js} +1 -1
  65. package/dist/assets/{LocalTools-Y7QXXXv1.js → LocalTools-CpzJO__m.js} +2 -2
  66. package/dist/assets/{LocalTools-B2UBvw3T.js → LocalTools-DoTgbMuT.js} +1 -1
  67. package/dist/assets/{Logo-CkZtONM-.js → Logo-CusEze2M.js} +1 -1
  68. package/dist/assets/{Main-B6vmpMi_.js → Main-ONLlInv1.js} +1 -1
  69. package/dist/assets/{Message-bYB4o6ns.js → Message-CHzrXHAI.js} +2 -2
  70. package/dist/assets/{Model-2qlcrdM5.js → Model-DyxkJfAf.js} +1 -1
  71. package/dist/assets/{Navigator-UlEQflv0.js → Navigator-Dlh58ndt.js} +6 -6
  72. package/dist/assets/{NotFound-q1Yogbs6.js → NotFound-CwFD4Ksf.js} +1 -1
  73. package/dist/assets/{PageHeader-DFCQCtrg.js → PageHeader-CEF1kkj2.js} +1 -1
  74. package/dist/assets/{Pay-D55gLkzf.js → Pay-aalIWMIv.js} +1 -1
  75. package/dist/assets/{Player-BZsDcGuL.js → Player-CG_qPu9f.js} +1 -1
  76. package/dist/assets/{Poivelle-D57_tC8_.js → Poivelle-CFTs0QM2.js} +1 -1
  77. package/dist/assets/{RealtimeCall-DyuHg2Bi.js → RealtimeCall-DWa-EMa8.js} +1 -1
  78. package/dist/assets/{ReportButton-DzpX6LE5.js → ReportButton-CE99kMuV.js} +1 -1
  79. package/dist/assets/{ReportDialog-CCnN0lJe.js → ReportDialog-CtH2W2Ml.js} +1 -1
  80. package/dist/assets/{ScenarioPaymentMode-CqRu92vx.js → ScenarioPaymentMode-z1NgjkNu.js} +1 -1
  81. package/dist/assets/ScheduledTasks-BanAkO87.js +2 -0
  82. package/dist/assets/{SolanaWalletPickerDialog-DOSCBh2r.js → SolanaWalletPickerDialog-Cf1c9aRy.js} +1 -1
  83. package/dist/assets/{Status-COhaglgv.js → Status-4ALebiGo.js} +1 -1
  84. package/dist/assets/{Subscribe-DAz47Cap.js → Subscribe-DK8jHK2K.js} +1 -1
  85. package/dist/assets/{TabSwitcher-BGVRfEet.js → TabSwitcher-DFSRi_JU.js} +1 -1
  86. package/dist/assets/{Tts-DMDt8Xcl.js → Tts-CAdHV0oP.js} +1 -1
  87. package/dist/assets/{VideoPlayer-Coh2RFTi.js → VideoPlayer-CWRC_2uk.js} +1 -1
  88. package/dist/assets/{VideoPreview-C5oYTkjm.js → VideoPreview-CnkWMQ8C.js} +1 -1
  89. package/dist/assets/{_Uint8Array-BXRa8Abd.js → _Uint8Array-XQBxN0L-.js} +1 -1
  90. package/dist/assets/{_baseClone-CwnTO9zo.js → _baseClone-U7fnZamc.js} +1 -1
  91. package/dist/assets/{_baseIteratee-h7hu4lGG.js → _baseIteratee-DLPcqXeW.js} +1 -1
  92. package/dist/assets/{_initCloneObject-C7qZIuLC.js → _initCloneObject-CSzorZ33.js} +1 -1
  93. package/dist/assets/arrow-down-Dgcv9V1n.js +1 -0
  94. package/dist/assets/{arrow-down-wide-narrow-B-Hw44Fp.js → arrow-down-wide-narrow-xP4Yk_m9.js} +1 -1
  95. package/dist/assets/arrow-left-DjeyNMjO.js +1 -0
  96. package/dist/assets/arrow-right-yD2bsK_A.js +1 -0
  97. package/dist/assets/arrow-up-Oq-TyfTv.js +1 -0
  98. package/dist/assets/{authorizeFlow-BcYpJg7c.js → authorizeFlow-BUO5Flgm.js} +1 -1
  99. package/dist/assets/avatar-CnQsavBT.js +1 -0
  100. package/dist/assets/{basic-DiyvIczP.js → basic-CqqyRSQ6.js} +1 -1
  101. package/dist/assets/{book-open-DwN99mbQ.js → book-open-BBto52Hy.js} +1 -1
  102. package/dist/assets/{box-BVjGLFxS.js → box-CjgWzmRH.js} +1 -1
  103. package/dist/assets/{boxes-c9GATTtV.js → boxes-Ch0CdyWt.js} +1 -1
  104. package/dist/assets/{brain-BB-39nEa.js → brain-BvsRE_4G.js} +1 -1
  105. package/dist/assets/{chart-no-axes-combined-DO-Wi2EC.js → chart-no-axes-combined-CCgcomKw.js} +1 -1
  106. package/dist/assets/{chat-Npxrt_kQ.js → chat-0yFlMYVR.js} +1 -1
  107. package/dist/assets/check-C6haHp_5.js +1 -0
  108. package/dist/assets/checkbox-DXMDpaxv.js +1 -0
  109. package/dist/assets/chevron-down-kOQEc1DQ.js +1 -0
  110. package/dist/assets/chevron-right-D4ynMR67.js +1 -0
  111. package/dist/assets/circle-check-DhFuCeIC.js +1 -0
  112. package/dist/assets/{circle-question-mark-CSxm0VWD.js → circle-question-mark-7WsuM54_.js} +1 -1
  113. package/dist/assets/{clipboard-list-BxHeRww6.js → clipboard-list-aYWEA39z.js} +1 -1
  114. package/dist/assets/clock-DAmpmfMk.js +1 -0
  115. package/dist/assets/code-B_88gzRu.js +1 -0
  116. package/dist/assets/{codingBridge-Dl514gEP.js → codingBridge-DPqwv_Q-.js} +1 -1
  117. package/dist/assets/codingBridgeNotify-C243XAQ3.js +2 -0
  118. package/dist/assets/{coins-sq7NECLS.js → coins-D7u-P3hE.js} +1 -1
  119. package/dist/assets/collapse-Cn0v0672.js +1 -0
  120. package/dist/assets/{common-B-c9sxdB.js → common-0gFKvUbv.js} +1 -1
  121. package/dist/assets/{common-BFJA3ieK.js → common-37ohr-XT.js} +1 -1
  122. package/dist/assets/{common-t5cLjCgd.js → common-B4An_YTm.js} +1 -1
  123. package/dist/assets/{common-CIkh1cBe.js → common-B651gMfj.js} +1 -1
  124. package/dist/assets/{common-DIkr6DUT.js → common-BKsvEmV6.js} +1 -1
  125. package/dist/assets/{common-BlzM4u-K.js → common-BPYnF8a5.js} +1 -1
  126. package/dist/assets/{common-BKCz97Y2.js → common-BqAdpno_.js} +1 -1
  127. package/dist/assets/{common-DrrHfeAt.js → common-CDAa_Wy3.js} +1 -1
  128. package/dist/assets/{common-Bg0zh9_g.js → common-CFrdR7cP.js} +1 -1
  129. package/dist/assets/{common-DIrEHT0L.js → common-CRdaMls6.js} +1 -1
  130. package/dist/assets/{common-1BuWg_Ck.js → common-CWaCL-rT.js} +1 -1
  131. package/dist/assets/common-DRbsZfM1.js +1 -0
  132. package/dist/assets/{common-Mi7Vx9F5.js → common-DUhRMhh_.js} +1 -1
  133. package/dist/assets/{common-BsYNmdlc.js → common-DZSi3Hh_.js} +1 -1
  134. package/dist/assets/common-MsalCK0u.js +1 -0
  135. package/dist/assets/{common-B5oDmIry.js → common-OrWJ1sIs.js} +1 -1
  136. package/dist/assets/{common-9nCXGYVx.js → common-jvlgniqw.js} +1 -1
  137. package/dist/assets/{common-BUVCx2e_.js → common-xxhDQiia.js} +1 -1
  138. package/dist/assets/{constants-DlrPFkyM.js → constants-CdZEFH5x.js} +1 -1
  139. package/dist/assets/{copy-C5QvMUhF.js → copy-C-eoCqpp.js} +1 -1
  140. package/dist/assets/{createTaskActions-Buml4YZY.js → createTaskActions-Dpo2FY6E.js} +1 -1
  141. package/dist/assets/{digitalhuman-BtCdcmzi.js → digitalhuman-D5Gv4Ils.js} +1 -1
  142. package/dist/assets/{dollar-sign-ZSrTaxmA.js → dollar-sign-CmuBygPk.js} +1 -1
  143. package/dist/assets/{download-PdN43Ii9.js → download-BQQJGY0e.js} +1 -1
  144. package/dist/assets/drawer-CLmU-Got.js +1 -0
  145. package/dist/assets/{dropdown-CirLmBbl.js → dropdown-CDlWW8VF.js} +1 -1
  146. package/dist/assets/dropdown-CbNRUbfy.js +1 -0
  147. package/dist/assets/{ellipsis-DCgVjflW.js → ellipsis-C4pNzKVr.js} +1 -1
  148. package/dist/assets/esm-BzkzIXzG.js +1 -0
  149. package/dist/assets/esm-CAyhwU8I.js +2 -0
  150. package/dist/assets/{esm-Hgtd-cm8.js → esm-mQK7-Jmo.js} +2 -2
  151. package/dist/assets/event-BGnHezxC.js +1 -0
  152. package/dist/assets/{external-link-Ik947zOn.js → external-link-CAB_CNUu.js} +1 -1
  153. package/dist/assets/{eye-VFrDoEk4.js → eye-DYfNRuif.js} +1 -1
  154. package/dist/assets/{file-BJi6f11L.js → file-C6dKDiai.js} +1 -1
  155. package/dist/assets/file-output-bSrlvRrv.js +1 -0
  156. package/dist/assets/{file-text-CVGRb3Sl.js → file-text-DxPsfXW2.js} +1 -1
  157. package/dist/assets/{fish-IghNxwsq.js → fish-Q2L3z4Al.js} +1 -1
  158. package/dist/assets/{flux-B9-kDmTH.js → flux-D02otYqk.js} +1 -1
  159. package/dist/assets/{folder-BNDnFq4V.js → folder--oyQ8nfO.js} +1 -1
  160. package/dist/assets/{form-CyX1oj8q.js → form-BdKMEyCR.js} +1 -1
  161. package/dist/assets/gauge-BKTV8ItL.js +1 -0
  162. package/dist/assets/{globe-jnFJnwZn.js → globe-BEP94d7V.js} +1 -1
  163. package/dist/assets/{grokvideo-B5anjmYK.js → grokvideo-eP7aiT3d.js} +1 -1
  164. package/dist/assets/{hailuo-Cv8EX1ss.js → hailuo-BtGLIk6L.js} +1 -1
  165. package/dist/assets/{headphones-B212Wbvy.js → headphones-Dm9heVrC.js} +1 -1
  166. package/dist/assets/{history-C_-QR2T6.js → history-CU_KyGIV.js} +1 -1
  167. package/dist/assets/{house-D_GT9GCN.js → house-Dpj9MokZ.js} +1 -1
  168. package/dist/assets/{i18n-CQJsUptL.js → i18n-DhQn0Z8p.js} +1 -1
  169. package/dist/assets/{image-Bh2YK2ql.js → image-C9t8D3m5.js} +1 -1
  170. package/dist/assets/{imageRequests-BKbsl9tT.js → imageRequests-D36QFGD8.js} +1 -1
  171. package/dist/assets/index-C-w8AJfV.js +570 -0
  172. package/dist/assets/{index-Dfp2KQ3h.css → index-CmAz1JTM.css} +1 -1
  173. package/dist/assets/{index.es-DcSmGa6z.js → index.es-CpSPskGM.js} +1 -1
  174. package/dist/assets/{info-DlDYYYyz.js → info-CifZclsR.js} +1 -1
  175. package/dist/assets/input-number-D_PD56K7.js +1 -0
  176. package/dist/assets/isArrayLikeObject-VRCqVaiT.js +1 -0
  177. package/dist/assets/{isEqual-Cavtrhie.js → isEqual-DeO3PEnJ.js} +1 -1
  178. package/dist/assets/{isPlainObject-B7E6s9en.js → isPlainObject-CIQNj6g3.js} +1 -1
  179. package/dist/assets/{key-round-C7Ox29cM.js → key-round-DpXGLbCi.js} +1 -1
  180. package/dist/assets/{kling-DI9XZTw6.js → kling-BdClJllc.js} +1 -1
  181. package/dist/assets/{languages-CeIhdhQe.js → languages-DFIVuRRk.js} +1 -1
  182. package/dist/assets/{laptop-DWSIh2KY.js → laptop-RhJDASeF.js} +1 -1
  183. package/dist/assets/{lightbulb-6SCo6aGb.js → lightbulb-BHpGUYNg.js} +1 -1
  184. package/dist/assets/{link-Cag6_8_J.js → link-Dk_62wni.js} +1 -1
  185. package/dist/assets/loader-circle-BR0zD2Br.js +1 -0
  186. package/dist/assets/{lock-BfsTRjoQ.js → lock-DNH1WqDy.js} +1 -1
  187. package/dist/assets/{luma-My7-Qacg.js → luma-DRjMeSc2.js} +1 -1
  188. package/dist/assets/{maestro-DtFqFbfA.js → maestro-DCbUANt5.js} +1 -1
  189. package/dist/assets/{maestroLanguages-Dj908WCy.js → maestroLanguages-Ci01wqmN.js} +1 -1
  190. package/dist/assets/{mail-DTKcIUlX.js → mail-D90C07ml.js} +1 -1
  191. package/dist/assets/{message-circle-CIzM-ib3.js → message-circle-DryU-mjQ.js} +1 -1
  192. package/dist/assets/{mic-lqwIrsvy.js → mic-DpkP8cNS.js} +1 -1
  193. package/dist/assets/{midjourney-B6ZymwTx.js → midjourney-ClFnrXbL.js} +1 -1
  194. package/dist/assets/{minimax-BOtBLzBq.js → minimax-CQMZNwrQ.js} +1 -1
  195. package/dist/assets/{mobileLocalExec-BPI41lV6.js → mobileLocalExec-D5WUfOvw.js} +2 -2
  196. package/dist/assets/{models-CwklOk8Z.js → models-C4O1HNS0.js} +1 -1
  197. package/dist/assets/{monitor-ipgmClj0.js → monitor-CgbJvAA5.js} +1 -1
  198. package/dist/assets/{mouse-pointer-2-BrOji6Vv.js → mouse-pointer-2-DZcCmo__.js} +1 -1
  199. package/dist/assets/music-2-DNsg6C9m.js +1 -0
  200. package/dist/assets/{nanobanana-x8-A4AiB.js → nanobanana-C3e37CBh.js} +1 -1
  201. package/dist/assets/{omni-CuQKUq0R.js → omni-Ck0PEQnQ.js} +1 -1
  202. package/dist/assets/{openaiimage-DWNeaPEk.js → openaiimage-BP3YyHY8.js} +1 -1
  203. package/dist/assets/pagination-C2V-Ik6E.js +1 -0
  204. package/dist/assets/{pagination-B8FPaRIA.js → pagination-CkF2u9jK.js} +1 -1
  205. package/dist/assets/{pagination-A4M5O80l.js → pagination-Cqd6FGMz.js} +1 -1
  206. package/dist/assets/{palette-BH9uLfke.js → palette-xGLHQR5_.js} +1 -1
  207. package/dist/assets/{paperclip-DU2unXPs.js → paperclip-Sf7MFEDh.js} +1 -1
  208. package/dist/assets/{pause-DKVsTcCD.js → pause-adMkKrSO.js} +1 -1
  209. package/dist/assets/{pencil-DDlb_Eqp.js → pencil-DJveEUCk.js} +1 -1
  210. package/dist/assets/{pika-Twbh_o5m.js → pika-DEskP_8Q.js} +1 -1
  211. package/dist/assets/{pixverse-CZeByPsP.js → pixverse-DJ8ovsB6.js} +1 -1
  212. package/dist/assets/play-BX89pr5h.js +1 -0
  213. package/dist/assets/{plug-pRt1uLP-.js → plug-DIygGUs_.js} +1 -1
  214. package/dist/assets/plus-DsPtzHMZ.js +1 -0
  215. package/dist/assets/{poivelle-CwbJUDMA.js → poivelle-CkRG9K6R.js} +1 -1
  216. package/dist/assets/{popover-CujDeM9r.js → popover-CCbUzZfK.js} +1 -1
  217. package/dist/assets/{producer-Cp-dqK1U.js → producer-_LkVoJMc.js} +1 -1
  218. package/dist/assets/{qrart-BMaggLhc.js → qrart-BqkocT47.js} +1 -1
  219. package/dist/assets/radio-BNhFzeBO.js +1 -0
  220. package/dist/assets/raf-BbgJq-wu.js +1 -0
  221. package/dist/assets/{realtime-Cof4IZ5A.js → realtime-BUOeNyD-.js} +1 -1
  222. package/dist/assets/{refresh-cw-zGJ1ywed.js → refresh-cw-Bu2iSphh.js} +1 -1
  223. package/dist/assets/rotate-ccw-IPNYOxzK.js +1 -0
  224. package/dist/assets/rotate-cw-Cw8L_Hve.js +1 -0
  225. package/dist/assets/{row-Da6HRJnU.js → row-pFT5d-_R.js} +1 -1
  226. package/dist/assets/scroll-kDH1KTep.js +1 -0
  227. package/dist/assets/{scrollbar-BhQr3aBa.js → scrollbar-3jGyy846.js} +1 -1
  228. package/dist/assets/search-CkC2D5Yj.js +1 -0
  229. package/dist/assets/{seedance-qDCXPkNU.js → seedance-BbHeJ5It.js} +1 -1
  230. package/dist/assets/{seedream-D8s98koo.js → seedream-BMxjvAAA.js} +1 -1
  231. package/dist/assets/select-K-2CZ3eR.js +1 -0
  232. package/dist/assets/{serp-CFeB3pNt.js → serp-CAeQ9XXL.js} +1 -1
  233. package/dist/assets/{shield-8Az-w1Iq.js → shield-C30JJkad.js} +1 -1
  234. package/dist/assets/{shuffle-BVyO1vuc.js → shuffle-BPsWcYzJ.js} +1 -1
  235. package/dist/assets/slider-CAVbZ4km.js +1 -0
  236. package/dist/assets/{solana-wallets-BMvn-gtj.js → solana-wallets-BPM-gerP.js} +2 -2
  237. package/dist/assets/{sora-B6njcLzj.js → sora-Ci3bZEwI.js} +1 -1
  238. package/dist/assets/{sparkles-DVlEhR_I.js → sparkles-CmjUgM5X.js} +1 -1
  239. package/dist/assets/square-DymQsvx_.js +1 -0
  240. package/dist/assets/{store-DdwflqCY.js → store-CfHokbJJ.js} +1 -1
  241. package/dist/assets/{suno-DKzj3RPQ.js → suno-SgCCjgsb.js} +1 -1
  242. package/dist/assets/switch-BZMevA9h.js +1 -0
  243. package/dist/assets/table-CYivBc_q.js +1 -0
  244. package/dist/assets/tabs-BaqfDqfv.js +1 -0
  245. package/dist/assets/{tag-CDE6lSVO.js → tag-BAF7zUb4.js} +1 -1
  246. package/dist/assets/terminal-yXrC2I0y.js +1 -0
  247. package/dist/assets/time-picker-D-zHadCF.js +1 -0
  248. package/dist/assets/tooltip-CjkDaYbd.js +1 -0
  249. package/dist/assets/{trash-2-84jnyEiH.js → trash-2-zWLkqDxH.js} +1 -1
  250. package/dist/assets/{triangle-alert-DijP-r53.js → triangle-alert-CCs6VvUs.js} +1 -1
  251. package/dist/assets/{upload-B-GObY7P.js → upload-Q8MqK29R.js} +1 -1
  252. package/dist/assets/{upload-uY7VeHmd.js → upload-_zFgS7Nh.js} +1 -1
  253. package/dist/assets/{use-aria-C2PoIbMN.js → use-aria-DApzlmKf.js} +1 -1
  254. package/dist/assets/user-DHY7x-vL.js +1 -0
  255. package/dist/assets/{veo-DplvtxRw.js → veo-KUI55n_I.js} +1 -1
  256. package/dist/assets/{video-BIEggF64.js → video-CFfCNDdy.js} +1 -1
  257. package/dist/assets/vnode-B_FEx-YD.js +1 -0
  258. package/dist/assets/{volume-2-CzcGTWGH.js → volume-2-DE0tnLtn.js} +1 -1
  259. package/dist/assets/{wallet-HjhzyIUc.js → wallet-C-kwFfVY.js} +1 -1
  260. package/dist/assets/{wan-CXPoan9e.js → wan-BVk2cktb.js} +1 -1
  261. package/dist/assets/{wand-sparkles-dlhWJtt5.js → wand-sparkles-BFbcxwi3.js} +1 -1
  262. package/dist/assets/{web-BimdZWc-.js → web-BJPtlBfg.js} +1 -1
  263. package/dist/assets/{web-D3WhI-pp.js → web-CABW7ZTT.js} +1 -1
  264. package/dist/assets/{web-DnTVcAMQ.js → web-CBAHqQFG.js} +1 -1
  265. package/dist/assets/{web-CpLFSuwG.js → web-DS65bqhf.js} +1 -1
  266. package/dist/assets/{web-Cos5bHDu.js → web-DyEvw4UT.js} +1 -1
  267. package/dist/assets/{webextrator-BPt59Czo.js → webextrator-C8VyzL3x.js} +1 -1
  268. package/dist/assets/{wechat-BtElgAls.js → wechat-B_xvylqk.js} +1 -1
  269. package/dist/assets/{zap-CVI9h9l6.js → zap-Yxjdgccv.js} +1 -1
  270. package/dist/index.html +10 -9
  271. package/package.json +1 -2
  272. package/dist/assets/Index-DQmVpjTa.js +0 -1
  273. package/dist/assets/Index-Ogxhmlx4.js +0 -1
  274. package/dist/assets/ScheduledTasks-QN5AxC-v.js +0 -2
  275. package/dist/assets/UpdateMenuItem-D2dQe6OD.js +0 -1
  276. package/dist/assets/arrow-down-CqF-cU9W.js +0 -1
  277. package/dist/assets/arrow-left-CoDtXesZ.js +0 -1
  278. package/dist/assets/arrow-right-Bkg9RgYl.js +0 -1
  279. package/dist/assets/arrow-up-BzNg9m4O.js +0 -1
  280. package/dist/assets/check-6cv1CZ0l.js +0 -1
  281. package/dist/assets/checkbox-DmqM9gFi.js +0 -1
  282. package/dist/assets/chevron-down-Ben_YIW6.js +0 -1
  283. package/dist/assets/chevron-right-C3lMw0qC.js +0 -1
  284. package/dist/assets/circle-check-CDbPCRg6.js +0 -1
  285. package/dist/assets/clock-CEYSZpiZ.js +0 -1
  286. package/dist/assets/code-DnM_OC9R.js +0 -1
  287. package/dist/assets/codingBridgeNotify-CDQKwxBX.js +0 -2
  288. package/dist/assets/collapse-Cr16lHVf.js +0 -1
  289. package/dist/assets/common-CFSDnaPx.js +0 -1
  290. package/dist/assets/common-Cj6O6oFE.js +0 -1
  291. package/dist/assets/drawer-C9ziMa5D.js +0 -1
  292. package/dist/assets/dropdown-BWJ6QGiC.js +0 -1
  293. package/dist/assets/esm-D_6POuvI.js +0 -1
  294. package/dist/assets/esm-oy9-x-4m.js +0 -2
  295. package/dist/assets/file-output-CUNyohca.js +0 -1
  296. package/dist/assets/focus-trap-DOoImtBk.js +0 -1
  297. package/dist/assets/gauge-aYfGw3VQ.js +0 -1
  298. package/dist/assets/index-BOCSBfUe.js +0 -570
  299. package/dist/assets/input-number-D2KUI1kN.js +0 -1
  300. package/dist/assets/isArrayLikeObject-NgGSp85h.js +0 -1
  301. package/dist/assets/loader-circle-CD3osO-L.js +0 -1
  302. package/dist/assets/music-2-CuQ41Wjt.js +0 -1
  303. package/dist/assets/pagination-CacbU_h5.js +0 -1
  304. package/dist/assets/play-DFLhwX31.js +0 -1
  305. package/dist/assets/plus-2XEDA9oZ.js +0 -1
  306. package/dist/assets/radio-DteyTHLj.js +0 -1
  307. package/dist/assets/rotate-ccw-C6ZbozHT.js +0 -1
  308. package/dist/assets/rotate-cw-DZMWXKfh.js +0 -1
  309. package/dist/assets/search-CYoqYABP.js +0 -1
  310. package/dist/assets/select-Bs3ZkE9R.js +0 -1
  311. package/dist/assets/slider-CrHYkY12.js +0 -1
  312. package/dist/assets/square-zuxAeD3b.js +0 -1
  313. package/dist/assets/switch-DRwxl6Da.js +0 -1
  314. package/dist/assets/table-CUPLKsew.js +0 -1
  315. package/dist/assets/tabs-0et25VV-.js +0 -1
  316. package/dist/assets/terminal-D7o7TjCB.js +0 -1
  317. package/dist/assets/time-picker-m83G80k1.js +0 -1
  318. package/dist/assets/tooltip-DtiQm14e.js +0 -1
  319. package/dist/assets/user-DmAQfp79.js +0 -1
  320. package/dist/assets/vnode-DOQF_9Lu.js +0 -1
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secp256k1-CBKdYWfq.js","assets/rolldown-runtime--c01j_DQ.js","assets/utils-CGq_Culp.js","assets/secp256k1-ClVDFbCG.js","assets/utils-Br0svb7K.js","assets/basic-DiyvIczP.js","assets/index-BOCSBfUe.js","assets/preload-helper-zJ_50EbN.js","assets/constants-DlrPFkyM.js","assets/i18n-CQJsUptL.js","assets/vendor-chart-Dw-P17PN.js","assets/vendor-axios-Ck2ffRoh.js","assets/icon-CDmWyIgD.js","assets/install-Cn-SLM3u.js","assets/en-CpRrS3Ur.js","assets/index.browser.esm-BuWinGJ1.js","assets/buffer-CnhyIITQ.js","assets/eventemitter3-CwKRT-4Q.js","assets/vendor-dayjs-C9ICuEWn.js","assets/models-CwklOk8Z.js","assets/vendor-vue-CCKiwo0U.js","assets/focus-trap-DOoImtBk.js","assets/aria-8oQuUBWy.js","assets/use-deprecated-BAB4ggjd.js","assets/use-aria-C2PoIbMN.js","assets/vnode-DOQF_9Lu.js","assets/debounce-5xtusvLq.js","assets/vendor-vue-router-Cnr45FPb.js","assets/index-Dfp2KQ3h.css","assets/lit-Czpkz5lw.js","assets/wui-text-IdpNh4yv.js","assets/ConstantsUtil-CiJQ7E9o.js","assets/ConnectorUtil-BNHqGaBo.js","assets/w3m-modal-CcAeUAZf.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secp256k1-CBKdYWfq.js","assets/rolldown-runtime--c01j_DQ.js","assets/utils-CGq_Culp.js","assets/secp256k1-ClVDFbCG.js","assets/utils-Br0svb7K.js","assets/basic-CqqyRSQ6.js","assets/index-C-w8AJfV.js","assets/preload-helper-zJ_50EbN.js","assets/constants-CdZEFH5x.js","assets/i18n-DhQn0Z8p.js","assets/vendor-chart-Dw-P17PN.js","assets/vendor-axios-Ck2ffRoh.js","assets/icon-CDmWyIgD.js","assets/install-Cn-SLM3u.js","assets/en-CpRrS3Ur.js","assets/index.browser.esm-BuWinGJ1.js","assets/buffer-CnhyIITQ.js","assets/eventemitter3-CwKRT-4Q.js","assets/vendor-dayjs-C9ICuEWn.js","assets/models-C4O1HNS0.js","assets/vendor-vue-CCKiwo0U.js","assets/use-deprecated-BAB4ggjd.js","assets/event-BGnHezxC.js","assets/use-aria-DApzlmKf.js","assets/aria-8oQuUBWy.js","assets/scroll-kDH1KTep.js","assets/vnode-B_FEx-YD.js","assets/debounce-5xtusvLq.js","assets/vendor-vue-router-Cnr45FPb.js","assets/index-CmAz1JTM.css","assets/lit-Czpkz5lw.js","assets/wui-text-IdpNh4yv.js","assets/ConstantsUtil-CiJQ7E9o.js","assets/ConnectorUtil-BNHqGaBo.js","assets/w3m-modal-CcAeUAZf.js"])))=>i.map(i=>d[i]);
2
2
  import{a as e,n as t,o as n,r,t as i}from"./rolldown-runtime--c01j_DQ.js";import{t as a}from"./preload-helper-zJ_50EbN.js";import{a as o,c as s,n as c,u as l}from"./index.browser.esm-BuWinGJ1.js";import{$ as u,A as d,B as f,C as p,D as m,E as h,F as g,H as _,I as v,J as y,K as b,L as x,M as S,N as C,O as w,P as T,Q as E,R as D,S as O,T as k,U as A,V as j,W as M,Y as N,Z as P,_ as F,at as I,b as L,c as R,d as z,et as B,f as V,g as H,h as ee,it as U,j as W,k as te,l as ne,m as re,nt as ie,p as G,q as ae,rt as oe,tt as se,u as ce,v as le,w as ue,x as de,y as fe,z as pe}from"./ConstantsUtil-CiJQ7E9o.js";import{i as K,n as me,r as he}from"./ConnectorUtil-BNHqGaBo.js";import{a as ge,c as _e,d as ve,f as ye,h as be,l as xe,m as Se,n as Ce,t as we,u as Te}from"./utils-Br0svb7K.js";import{E as Ee,T as De,b as Oe,g as ke,l as Ae,m as je,n as Me,o as Ne,s as Pe,w as Fe,y as Ie}from"./esm-XM2jj6jY.js";import{a as Le,c as Re,d as ze,f as Be,h as Ve,l as He,m as Ue,n as We,t as Ge,u as Ke}from"./utils-CGq_Culp.js";var qe={validateCaipAddress(e){if(e.split(`:`)?.length!==3)throw Error(`Invalid CAIP Address`);return e},parseCaipAddress(e){let t=e.split(`:`);if(t.length!==3)throw Error(`Invalid CAIP-10 address: ${e}`);let[n,r,i]=t;if(!n||!r||!i)throw Error(`Invalid CAIP-10 address: ${e}`);return{chainNamespace:n,chainId:r,address:i}},parseCaipNetworkId(e){let t=e.split(`:`);if(t.length!==2)throw Error(`Invalid CAIP-2 network id: ${e}`);let[n,r]=t;if(!n||!r)throw Error(`Invalid CAIP-2 network id: ${e}`);return{chainNamespace:n,chainId:r}}},Je=r({__assign:()=>vt,__asyncDelegator:()=>ut,__asyncGenerator:()=>lt,__asyncValues:()=>dt,__await:()=>ct,__awaiter:()=>et,__classPrivateFieldGet:()=>ht,__classPrivateFieldSet:()=>gt,__createBinding:()=>nt,__decorate:()=>Ze,__exportStar:()=>rt,__extends:()=>Ye,__generator:()=>tt,__importDefault:()=>mt,__importStar:()=>pt,__makeTemplateObject:()=>ft,__metadata:()=>$e,__param:()=>Qe,__read:()=>at,__rest:()=>Xe,__spread:()=>ot,__spreadArrays:()=>st,__values:()=>it});function Ye(e,t){_t(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function Xe(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function Ze(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function Qe(e,t){return function(n,r){t(n,r,e)}}function $e(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}function et(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}function tt(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol==`function`&&(o[Symbol.iterator]=function(){return this}),o;function s(e){return function(t){return c([e,t])}}function c(o){if(r)throw TypeError(`Generator is already executing.`);for(;n;)try{if(r=1,i&&(a=o[0]&2?i.return:o[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,o[1])).done)return a;switch(i=0,a&&(o=[o[0]&2,a.value]),o[0]){case 0:case 1:a=o;break;case 4:return n.label++,{value:o[1],done:!1};case 5:n.label++,i=o[1],o=[0];continue;case 7:o=n.ops.pop(),n.trys.pop();continue;default:if((a=n.trys,!(a=a.length>0&&a[a.length-1]))&&(o[0]===6||o[0]===2)){n=0;continue}if(o[0]===3&&(!a||o[1]>a[0]&&o[1]<a[3])){n.label=o[1];break}if(o[0]===6&&n.label<a[1]){n.label=a[1],a=o;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(o);break}a[2]&&n.ops.pop(),n.trys.pop();continue}o=t.call(e,n)}catch(e){o=[6,e],i=0}finally{r=a=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}}function nt(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]}function rt(e,t){for(var n in e)n!==`default`&&!t.hasOwnProperty(n)&&(t[n]=e[n])}function it(e){var t=typeof Symbol==`function`&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length==`number`)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)}function at(e,t){var n=typeof Symbol==`function`&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(e){o={error:e}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function ot(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(at(arguments[t]));return e}function st(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var r=Array(e),i=0,t=0;t<n;t++)for(var a=arguments[t],o=0,s=a.length;o<s;o++,i++)r[i]=a[o];return r}function ct(e){return this instanceof ct?(this.v=e,this):new ct(e)}function lt(e,t,n){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var r=n.apply(e,t||[]),i,a=[];return i={},o(`next`),o(`throw`),o(`return`),i[Symbol.asyncIterator]=function(){return this},i;function o(e){r[e]&&(i[e]=function(t){return new Promise(function(n,r){a.push([e,t,n,r])>1||s(e,t)})})}function s(e,t){try{c(r[e](t))}catch(e){d(a[0][3],e)}}function c(e){e.value instanceof ct?Promise.resolve(e.value.v).then(l,u):d(a[0][2],e)}function l(e){s(`next`,e)}function u(e){s(`throw`,e)}function d(e,t){e(t),a.shift(),a.length&&s(a[0][0],a[0][1])}}function ut(e){var t,n;return t={},r(`next`),r(`throw`,function(e){throw e}),r(`return`),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:ct(e[r](t)),done:r===`return`}:i?i(t):t}:i}}function dt(e){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof it==`function`?it(e):e[Symbol.iterator](),n={},r(`next`),r(`throw`),r(`return`),n[Symbol.asyncIterator]=function(){return this},n);function r(t){n[t]=e[t]&&function(n){return new Promise(function(r,a){n=e[t](n),i(r,a,n.done,n.value)})}}function i(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)}}function ft(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function pt(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function mt(e){return e&&e.__esModule?e:{default:e}}function ht(e,t){if(!t.has(e))throw TypeError(`attempted to get private field on non-instance`);return t.get(e)}function gt(e,t,n){if(!t.has(e))throw TypeError(`attempted to set private field on non-instance`);return t.set(e,n),n}var _t,vt,yt=t((()=>{_t=function(e,t){return _t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},_t(e,t)},vt=function(){return vt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},vt.apply(this,arguments)}})),bt=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.delay=void 0;function t(e){return new Promise(t=>{setTimeout(()=>{t(!0)},e)})}e.delay=t})),xt=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ONE_THOUSAND=e.ONE_HUNDRED=void 0,e.ONE_HUNDRED=100,e.ONE_THOUSAND=1e3})),St=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ONE_YEAR=e.FOUR_WEEKS=e.THREE_WEEKS=e.TWO_WEEKS=e.ONE_WEEK=e.THIRTY_DAYS=e.SEVEN_DAYS=e.FIVE_DAYS=e.THREE_DAYS=e.ONE_DAY=e.TWENTY_FOUR_HOURS=e.TWELVE_HOURS=e.SIX_HOURS=e.THREE_HOURS=e.ONE_HOUR=e.SIXTY_MINUTES=e.THIRTY_MINUTES=e.TEN_MINUTES=e.FIVE_MINUTES=e.ONE_MINUTE=e.SIXTY_SECONDS=e.THIRTY_SECONDS=e.TEN_SECONDS=e.FIVE_SECONDS=e.ONE_SECOND=void 0,e.ONE_SECOND=1,e.FIVE_SECONDS=5,e.TEN_SECONDS=10,e.THIRTY_SECONDS=30,e.SIXTY_SECONDS=60,e.ONE_MINUTE=e.SIXTY_SECONDS,e.FIVE_MINUTES=e.ONE_MINUTE*5,e.TEN_MINUTES=e.ONE_MINUTE*10,e.THIRTY_MINUTES=e.ONE_MINUTE*30,e.SIXTY_MINUTES=e.ONE_MINUTE*60,e.ONE_HOUR=e.SIXTY_MINUTES,e.THREE_HOURS=e.ONE_HOUR*3,e.SIX_HOURS=e.ONE_HOUR*6,e.TWELVE_HOURS=e.ONE_HOUR*12,e.TWENTY_FOUR_HOURS=e.ONE_HOUR*24,e.ONE_DAY=e.TWENTY_FOUR_HOURS,e.THREE_DAYS=e.ONE_DAY*3,e.FIVE_DAYS=e.ONE_DAY*5,e.SEVEN_DAYS=e.ONE_DAY*7,e.THIRTY_DAYS=e.ONE_DAY*30,e.ONE_WEEK=e.SEVEN_DAYS,e.TWO_WEEKS=e.ONE_WEEK*2,e.THREE_WEEKS=e.ONE_WEEK*3,e.FOUR_WEEKS=e.ONE_WEEK*4,e.ONE_YEAR=e.ONE_DAY*365})),Ct=i((t=>{Object.defineProperty(t,"__esModule",{value:!0});var n=(yt(),e(Je));n.__exportStar(xt(),t),n.__exportStar(St(),t)})),wt=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.fromMiliseconds=e.toMiliseconds=void 0;var t=Ct();function n(e){return e*t.ONE_THOUSAND}e.toMiliseconds=n;function r(e){return Math.floor(e/t.ONE_THOUSAND)}e.fromMiliseconds=r})),Tt=i((t=>{Object.defineProperty(t,"__esModule",{value:!0});var n=(yt(),e(Je));n.__exportStar(bt(),t),n.__exportStar(wt(),t)})),Et=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Watch=void 0;var t=class{constructor(){this.timestamps=new Map}start(e){if(this.timestamps.has(e))throw Error(`Watch already started for label: ${e}`);this.timestamps.set(e,{started:Date.now()})}stop(e){let t=this.get(e);if(t.elapsed!==void 0)throw Error(`Watch already stopped for label: ${e}`);let n=Date.now()-t.started;this.timestamps.set(e,{started:t.started,elapsed:n})}get(e){let t=this.timestamps.get(e);if(t===void 0)throw Error(`No timestamp found for label: ${e}`);return t}elapsed(e){let t=this.get(e);return t.elapsed||Date.now()-t.started}};e.Watch=t,e.default=t})),Dt=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.IWatch=void 0,e.IWatch=class{}})),Ot=i((t=>{Object.defineProperty(t,"__esModule",{value:!0}),(yt(),e(Je)).__exportStar(Dt(),t)})),kt=i((t=>{Object.defineProperty(t,"__esModule",{value:!0});var n=(yt(),e(Je));n.__exportStar(Tt(),t),n.__exportStar(Et(),t),n.__exportStar(Ot(),t),n.__exportStar(Ct(),t)})),At=class{},jt=n(j()),q=kt(),Mt=class extends At{constructor(e){super()}},Nt=q.FIVE_SECONDS,Pt={pulse:`heartbeat_pulse`},Ft=class e extends Mt{constructor(e){super(e),this.events=new jt.EventEmitter,this.interval=Nt,this.interval=e?.interval||Nt}static async init(t){let n=new e(t);return await n.init(),n}async init(){await this.initialize()}stop(){clearInterval(this.intervalRef)}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 initialize(){this.intervalRef=setInterval(()=>this.pulse(),(0,q.toMiliseconds)(this.interval))}pulse(){this.events.emit(Pt.pulse)}},It=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,Lt=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,Rt=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function zt(e,t){if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t){Bt(e);return}return t}function Bt(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function Vt(e,t={}){if(typeof e!=`string`)return e;if(e[0]===`"`&&e[e.length-1]===`"`&&e.indexOf(`\\`)===-1)return e.slice(1,-1);let n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case`true`:return!0;case`false`:return!1;case`undefined`:return;case`null`:return null;case`nan`:return NaN;case`infinity`:return 1/0;case`-infinity`:return-1/0}if(!Rt.test(e)){if(t.strict)throw SyntaxError(`[destr] Invalid JSON`);return e}try{if(It.test(e)||Lt.test(e)){if(t.strict)throw Error(`[destr] Possible prototype pollution`);return JSON.parse(e,zt)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}function Ht(e){return!e||typeof e.then!=`function`?Promise.resolve(e):e}function Ut(e,...t){try{return Ht(e(...t))}catch(e){return Promise.reject(e)}}function Wt(e){let t=typeof e;return e===null||t!==`object`&&t!==`function`}function Gt(e){let t=Object.getPrototypeOf(e);return!t||t.isPrototypeOf(Object)}function Kt(e){if(Wt(e))return String(e);if(Gt(e)||Array.isArray(e))return JSON.stringify(e);if(typeof e.toJSON==`function`)return Kt(e.toJSON());throw Error(`[unstorage] Cannot stringify value!`)}var qt=`base64:`;function Jt(e){return typeof e==`string`?e:qt+Zt(e)}function Yt(e){return typeof e!=`string`||!e.startsWith(qt)?e:Xt(e.slice(7))}function Xt(e){return globalThis.Buffer?Buffer.from(e,`base64`):Uint8Array.from(globalThis.atob(e),e=>e.codePointAt(0))}function Zt(e){return globalThis.Buffer?Buffer.from(e).toString(`base64`):globalThis.btoa(String.fromCodePoint(...e))}function Qt(e){return e&&e.split(`?`)[0]?.replace(/[/\\]/g,`:`).replace(/:+/g,`:`).replace(/^:|:$/g,``)||``}function $t(...e){return Qt(e.join(`:`))}function en(e){return e=Qt(e),e?e+`:`:``}function tn(e,t){if(t===void 0)return!0;let n=0,r=e.indexOf(`:`);for(;r>-1;)n++,r=e.indexOf(`:`,r+1);return n<=t}function nn(e,t){return t?e.startsWith(t)&&e[e.length-1]!==`$`:e[e.length-1]!==`$`}function rn(e){return e}var an=`memory`,on=rn(()=>{let e=new Map;return{name:an,getInstance:()=>e,hasItem(t){return e.has(t)},getItem(t){return e.get(t)??null},getItemRaw(t){return e.get(t)??null},setItem(t,n){e.set(t,n)},setItemRaw(t,n){e.set(t,n)},removeItem(t){e.delete(t)},getKeys(){return[...e.keys()]},clear(){e.clear()},dispose(){e.clear()}}});function sn(e={}){let t={mounts:{"":e.driver||on()},mountpoints:[``],watching:!1,watchListeners:[],unwatch:{}},n=e=>{for(let n of t.mountpoints)if(e.startsWith(n))return{base:n,relativeKey:e.slice(n.length),driver:t.mounts[n]};return{base:``,relativeKey:e,driver:t.mounts[``]}},r=(e,n)=>t.mountpoints.filter(t=>t.startsWith(e)||n&&e.startsWith(t)).map(n=>({relativeBase:e.length>n.length?e.slice(n.length):void 0,mountpoint:n,driver:t.mounts[n]})),i=(e,n)=>{if(t.watching){n=Qt(n);for(let r of t.watchListeners)r(e,n)}},a=async()=>{if(!t.watching){t.watching=!0;for(let e in t.mounts)t.unwatch[e]=await cn(t.mounts[e],i,e)}},o=async()=>{if(t.watching){for(let e in t.unwatch)await t.unwatch[e]();t.unwatch={},t.watching=!1}},s=(e,t,r)=>{let i=new Map,a=e=>{let t=i.get(e.base);return t||(t={driver:e.driver,base:e.base,items:[]},i.set(e.base,t)),t};for(let r of e){let e=typeof r==`string`,i=Qt(e?r:r.key),o=e?void 0:r.value,s=e||!r.options?t:{...t,...r.options},c=n(i);a(c).items.push({key:i,value:o,relativeKey:c.relativeKey,options:s})}return Promise.all([...i.values()].map(e=>r(e))).then(e=>e.flat())},c={hasItem(e,t={}){e=Qt(e);let{relativeKey:r,driver:i}=n(e);return Ut(i.hasItem,r,t)},getItem(e,t={}){e=Qt(e);let{relativeKey:r,driver:i}=n(e);return Ut(i.getItem,r,t).then(e=>Vt(e))},getItems(e,t={}){return s(e,t,e=>e.driver.getItems?Ut(e.driver.getItems,e.items.map(e=>({key:e.relativeKey,options:e.options})),t).then(t=>t.map(t=>({key:$t(e.base,t.key),value:Vt(t.value)}))):Promise.all(e.items.map(t=>Ut(e.driver.getItem,t.relativeKey,t.options).then(e=>({key:t.key,value:Vt(e)})))))},getItemRaw(e,t={}){e=Qt(e);let{relativeKey:r,driver:i}=n(e);return i.getItemRaw?Ut(i.getItemRaw,r,t):Ut(i.getItem,r,t).then(e=>Yt(e))},async setItem(e,t,r={}){if(t===void 0)return c.removeItem(e);e=Qt(e);let{relativeKey:a,driver:o}=n(e);o.setItem&&(await Ut(o.setItem,a,Kt(t),r),o.watch||i(`update`,e))},async setItems(e,t){await s(e,t,async e=>{if(e.driver.setItems)return Ut(e.driver.setItems,e.items.map(e=>({key:e.relativeKey,value:Kt(e.value),options:e.options})),t);e.driver.setItem&&await Promise.all(e.items.map(t=>Ut(e.driver.setItem,t.relativeKey,Kt(t.value),t.options)))})},async setItemRaw(e,t,r={}){if(t===void 0)return c.removeItem(e,r);e=Qt(e);let{relativeKey:a,driver:o}=n(e);if(o.setItemRaw)await Ut(o.setItemRaw,a,t,r);else if(o.setItem)await Ut(o.setItem,a,Jt(t),r);else return;o.watch||i(`update`,e)},async removeItem(e,t={}){typeof t==`boolean`&&(t={removeMeta:t}),e=Qt(e);let{relativeKey:r,driver:a}=n(e);a.removeItem&&(await Ut(a.removeItem,r,t),(t.removeMeta||t.removeMata)&&await Ut(a.removeItem,r+`$`,t),a.watch||i(`remove`,e))},async getMeta(e,t={}){typeof t==`boolean`&&(t={nativeOnly:t}),e=Qt(e);let{relativeKey:r,driver:i}=n(e),a=Object.create(null);if(i.getMeta&&Object.assign(a,await Ut(i.getMeta,r,t)),!t.nativeOnly){let e=await Ut(i.getItem,r+`$`,t).then(e=>Vt(e));e&&typeof e==`object`&&(typeof e.atime==`string`&&(e.atime=new Date(e.atime)),typeof e.mtime==`string`&&(e.mtime=new Date(e.mtime)),Object.assign(a,e))}return a},setMeta(e,t,n={}){return this.setItem(e+`$`,t,n)},removeMeta(e,t={}){return this.removeItem(e+`$`,t)},async getKeys(e,t={}){e=en(e);let n=r(e,!0),i=[],a=[],o=!0;for(let e of n){e.driver.flags?.maxDepth||(o=!1);let n=await Ut(e.driver.getKeys,e.relativeBase,t);for(let t of n){let n=e.mountpoint+Qt(t);i.some(e=>n.startsWith(e))||a.push(n)}i=[e.mountpoint,...i.filter(t=>!t.startsWith(e.mountpoint))]}let s=t.maxDepth!==void 0&&!o;return a.filter(n=>(!s||tn(n,t.maxDepth))&&nn(n,e))},async clear(e,t={}){e=en(e),await Promise.all(r(e,!1).map(async e=>{if(e.driver.clear)return Ut(e.driver.clear,e.relativeBase,t);if(e.driver.removeItem){let n=await e.driver.getKeys(e.relativeBase||``,t);return Promise.all(n.map(n=>e.driver.removeItem(n,t)))}}))},async dispose(){await Promise.all(Object.values(t.mounts).map(e=>ln(e)))},async watch(e){return await a(),t.watchListeners.push(e),async()=>{t.watchListeners=t.watchListeners.filter(t=>t!==e),t.watchListeners.length===0&&await o()}},async unwatch(){t.watchListeners=[],await o()},mount(e,n){if(e=en(e),e&&t.mounts[e])throw Error(`already mounted at ${e}`);return e&&(t.mountpoints.push(e),t.mountpoints.sort((e,t)=>t.length-e.length)),t.mounts[e]=n,t.watching&&Promise.resolve(cn(n,i,e)).then(n=>{t.unwatch[e]=n}).catch(console.error),c},async unmount(e,n=!0){e=en(e),!(!e||!t.mounts[e])&&(t.watching&&e in t.unwatch&&(t.unwatch[e]?.(),delete t.unwatch[e]),n&&await ln(t.mounts[e]),t.mountpoints=t.mountpoints.filter(t=>t!==e),delete t.mounts[e])},getMount(e=``){e=Qt(e)+`:`;let t=n(e);return{driver:t.driver,base:t.base}},getMounts(e=``,t={}){return e=Qt(e),r(e,t.parents).map(e=>({driver:e.driver,base:e.mountpoint}))},keys:(e,t={})=>c.getKeys(e,t),get:(e,t={})=>c.getItem(e,t),set:(e,t,n={})=>c.setItem(e,t,n),has:(e,t={})=>c.hasItem(e,t),del:(e,t={})=>c.removeItem(e,t),remove:(e,t={})=>c.removeItem(e,t)};return c}function cn(e,t,n){return e.watch?e.watch((e,r)=>t(e,n+r)):()=>{}}async function ln(e){typeof e.dispose==`function`&&await Ut(e.dispose)}function un(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}function dn(e,t){let n,r=()=>{if(n)return n;let r=indexedDB.open(e);return r.onupgradeneeded=()=>r.result.createObjectStore(t),n=un(r),n.then(e=>{e.onclose=()=>n=void 0},()=>{}),n};return(e,n)=>r().then(r=>n(r.transaction(t,e).objectStore(t)))}var fn;function pn(){return fn||=dn(`keyval-store`,`keyval`),fn}function mn(e,t=pn()){return t(`readonly`,t=>un(t.get(e)))}function hn(e,t,n=pn()){return n(`readwrite`,n=>(n.put(t,e),un(n.transaction)))}function gn(e,t=pn()){return t(`readwrite`,t=>(t.delete(e),un(t.transaction)))}function _n(e=pn()){return e(`readwrite`,e=>(e.clear(),un(e.transaction)))}function vn(e,t){return e.openCursor().onsuccess=function(){this.result&&(t(this.result),this.result.continue())},un(e.transaction)}function yn(e=pn()){return e(`readonly`,e=>{if(e.getAllKeys)return un(e.getAllKeys());let t=[];return vn(e,e=>t.push(e.key)).then(()=>t)})}var bn=`idb-keyval`,xn=(e={})=>{let t=e.base&&e.base.length>0?`${e.base}:`:``,n=e=>t+e,r;return e.dbName&&e.storeName&&(r=dn(e.dbName,e.storeName)),{name:bn,options:e,async hasItem(e){return!(typeof await mn(n(e),r)>`u`)},async getItem(e){return await mn(n(e),r)??null},setItem(e,t){return hn(n(e),t,r)},removeItem(e){return gn(n(e),r)},getKeys(){return yn(r)},clear(){return _n(r)}}},Sn=`WALLET_CONNECT_V2_INDEXED_DB`,Cn=`keyvaluestorage`,wn=class{constructor(){this.indexedDb=sn({driver:xn({dbName:Sn,storeName:Cn})})}async getKeys(){return this.indexedDb.getKeys()}async getEntries(){return(await this.indexedDb.getItems(await this.indexedDb.getKeys())).map(e=>[e.key,e.value])}async getItem(e){let t=await this.indexedDb.getItem(e);if(t!==null)return t}async setItem(e,t){await this.indexedDb.setItem(e,f(t))}async removeItem(e){await this.indexedDb.removeItem(e)}},Tn=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},En={exports:{}};(function(){let e;function t(){}e=t,e.prototype.getItem=function(e){return this.hasOwnProperty(e)?String(this[e]):null},e.prototype.setItem=function(e,t){this[e]=String(t)},e.prototype.removeItem=function(e){delete this[e]},e.prototype.clear=function(){let e=this;Object.keys(e).forEach(function(t){e[t]=void 0,delete e[t]})},e.prototype.key=function(e){return e||=0,Object.keys(this)[e]},e.prototype.__defineGetter__(`length`,function(){return Object.keys(this).length}),typeof Tn<`u`&&Tn.localStorage?En.exports=Tn.localStorage:typeof window<`u`&&window.localStorage?En.exports=window.localStorage:En.exports=new t})();function Dn(e){return[e[0],pe(e[1]??``)]}var On=class{constructor(){this.localStorage=En.exports}async getKeys(){return Object.keys(this.localStorage)}async getEntries(){return Object.entries(this.localStorage).map(Dn)}async getItem(e){let t=this.localStorage.getItem(e);if(t!==null)return pe(t)}async setItem(e,t){this.localStorage.setItem(e,f(t))}async removeItem(e){this.localStorage.removeItem(e)}},kn=`wc_storage_version`,An=1,jn=async(e,t,n)=>{let r=kn,i=await t.getItem(r);if(i&&i>=An){n(t);return}let a=await e.getKeys();if(!a.length){n(t);return}let o=[];for(;a.length;){let n=a.shift();if(!n)continue;let r=n.toLowerCase();if(r.includes(`wc@`)||r.includes(`walletconnect`)||r.includes(`wc_`)||r.includes(`wallet_connect`)){let r=await e.getItem(n);await t.setItem(n,r),o.push(n)}}await t.setItem(r,An),n(t),Mn(e,o)},Mn=async(e,t)=>{t.length&&t.forEach(async t=>{await e.removeItem(t)})},Nn=class{constructor(){this.initialized=!1,this.setInitialized=e=>{this.storage=e,this.initialized=!0};let e=new On;this.storage=e;try{jn(e,new wn,this.setInitialized)}catch{this.initialized=!0}}async getKeys(){return await this.initialize(),this.storage.getKeys()}async getEntries(){return await this.initialize(),this.storage.getEntries()}async getItem(e){return await this.initialize(),this.storage.getItem(e)}async setItem(e,t){return await this.initialize(),this.storage.setItem(e,t)}async removeItem(e){return await this.initialize(),this.storage.removeItem(e)}async initialize(){this.initialized||await new Promise(e=>{let t=setInterval(()=>{this.initialized&&(clearInterval(t),e())},20)})}},Pn=Object.defineProperty,Fn=(e,t,n)=>t in e?Pn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,In=(e,t,n)=>Fn(e,typeof t==`symbol`?t:t+``,n),Ln=class extends At{constructor(e){super(),this.opts=e,In(this,`protocol`,`wc`),In(this,`version`,2)}},Rn=Object.defineProperty,zn=(e,t,n)=>t in e?Rn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Bn=(e,t,n)=>zn(e,typeof t==`symbol`?t:t+``,n),Vn=class extends At{constructor(e,t){super(),this.core=e,this.logger=t,Bn(this,`records`,new Map)}},Hn=class{constructor(e,t){this.logger=e,this.core=t}},Un=class extends At{constructor(e,t){super(),this.relayer=e,this.logger=t}},Wn=class extends At{constructor(e){super()}},Gn=class{constructor(e,t,n,r){this.core=e,this.logger=t,this.name=n}},Kn=class extends At{constructor(e,t){super(),this.relayer=e,this.logger=t}},qn=class extends At{constructor(e,t){super(),this.core=e,this.logger=t}},Jn=class{constructor(e,t,n){this.core=e,this.logger=t,this.store=n}},Yn=class{constructor(e,t){this.projectId=e,this.logger=t}},Xn=class{constructor(e,t,n){this.core=e,this.logger=t,this.telemetryEnabled=n}},Zn=Object.defineProperty,Qn=(e,t,n)=>t in e?Zn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$n=(e,t,n)=>Qn(e,typeof t==`symbol`?t:t+``,n),er=class{constructor(e){this.opts=e,$n(this,`protocol`,`wc`),$n(this,`version`,2)}},tr=class{constructor(e){this.client=e}};function nr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function rr(e,...t){if(!nr(e))throw Error(`Uint8Array expected`);if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length `+t+`, got length=`+e.length)}function ir(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function ar(e,t){rr(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}var or=typeof globalThis==`object`&&`crypto`in globalThis?globalThis.crypto:void 0,sr=e=>new DataView(e.buffer,e.byteOffset,e.byteLength);function cr(e){if(typeof e!=`string`)throw Error(`utf8ToBytes expected string, got `+typeof e);return new Uint8Array(new TextEncoder().encode(e))}function lr(e){return typeof e==`string`&&(e=cr(e)),rr(e),e}var ur=class{clone(){return this._cloneInto()}};function dr(e){let t=t=>e().update(lr(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function fr(e=32){if(or&&typeof or.getRandomValues==`function`)return or.getRandomValues(new Uint8Array(e));if(or&&typeof or.randomBytes==`function`)return or.randomBytes(e);throw Error(`crypto.getRandomValues must be defined`)}function pr(e,t,n,r){if(typeof e.setBigUint64==`function`)return e.setBigUint64(t,n,r);let i=BigInt(32),a=BigInt(4294967295),o=Number(n>>i&a),s=Number(n&a),c=r?4:0,l=r?0:4;e.setUint32(t+c,o,r),e.setUint32(t+l,s,r)}var mr=class extends ur{constructor(e,t,n,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=sr(this.buffer)}update(e){ir(this);let{view:t,buffer:n,blockLen:r}=this;e=lr(e);let i=e.length;for(let a=0;a<i;){let o=Math.min(r-this.pos,i-a);if(o===r){let t=sr(e);for(;r<=i-a;a+=r)this.process(t,a);continue}n.set(e.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){ir(this),ar(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:r,isLE:i}=this,{pos:a}=this;t[a++]=128,this.buffer.subarray(a).fill(0),this.padOffset>r-a&&(this.process(n,0),a=0);for(let e=a;e<r;e++)t[e]=0;pr(n,r-8,BigInt(this.length*8),i),this.process(n,0);let o=sr(e),s=this.outputLen;if(s%4)throw Error(`_sha2: outputLen should be aligned to 32bit`);let c=s/4,l=this.get();if(c>l.length)throw Error(`_sha2: outputLen bigger than state`);for(let e=0;e<c;e++)o.setUint32(4*e,l[e],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:n,length:r,finished:i,destroyed:a,pos:o}=this;return e.length=r,e.pos=o,e.finished=i,e.destroyed=a,r%t&&e.buffer.set(n),e}},hr=BigInt(2**32-1),gr=BigInt(32);function _r(e,t=!1){return t?{h:Number(e&hr),l:Number(e>>gr&hr)}:{h:Number(e>>gr&hr)|0,l:Number(e&hr)|0}}function vr(e,t=!1){let n=new Uint32Array(e.length),r=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:a,l:o}=_r(e[i],t);[n[i],r[i]]=[a,o]}return[n,r]}var yr=(e,t)=>BigInt(e>>>0)<<gr|BigInt(t>>>0),br=(e,t,n)=>e>>>n,xr=(e,t,n)=>e<<32-n|t>>>n,Sr=(e,t,n)=>e>>>n|t<<32-n,Cr=(e,t,n)=>e<<32-n|t>>>n,wr=(e,t,n)=>e<<64-n|t>>>n-32,Tr=(e,t,n)=>e>>>n-32|t<<64-n,Er=(e,t)=>t,Dr=(e,t)=>e,Or=(e,t,n)=>e<<n|t>>>32-n,kr=(e,t,n)=>t<<n|e>>>32-n,Ar=(e,t,n)=>t<<n-32|e>>>64-n,jr=(e,t,n)=>e<<n-32|t>>>64-n;function Mr(e,t,n,r){let i=(t>>>0)+(r>>>0);return{h:e+n+(i/2**32|0)|0,l:i|0}}var J={fromBig:_r,split:vr,toBig:yr,shrSH:br,shrSL:xr,rotrSH:Sr,rotrSL:Cr,rotrBH:wr,rotrBL:Tr,rotr32H:Er,rotr32L:Dr,rotlSH:Or,rotlSL:kr,rotlBH:Ar,rotlBL:jr,add:Mr,add3L:(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),add3H:(e,t,n,r)=>t+n+r+(e/2**32|0)|0,add4L:(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),add4H:(e,t,n,r,i)=>t+n+r+i+(e/2**32|0)|0,add5H:(e,t,n,r,i,a)=>t+n+r+i+a+(e/2**32|0)|0,add5L:(e,t,n,r,i)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(i>>>0)},[Nr,Pr]=J.split(`0x428a2f98d728ae22.0x7137449123ef65cd.0xb5c0fbcfec4d3b2f.0xe9b5dba58189dbbc.0x3956c25bf348b538.0x59f111f1b605d019.0x923f82a4af194f9b.0xab1c5ed5da6d8118.0xd807aa98a3030242.0x12835b0145706fbe.0x243185be4ee4b28c.0x550c7dc3d5ffb4e2.0x72be5d74f27b896f.0x80deb1fe3b1696b1.0x9bdc06a725c71235.0xc19bf174cf692694.0xe49b69c19ef14ad2.0xefbe4786384f25e3.0x0fc19dc68b8cd5b5.0x240ca1cc77ac9c65.0x2de92c6f592b0275.0x4a7484aa6ea6e483.0x5cb0a9dcbd41fbd4.0x76f988da831153b5.0x983e5152ee66dfab.0xa831c66d2db43210.0xb00327c898fb213f.0xbf597fc7beef0ee4.0xc6e00bf33da88fc2.0xd5a79147930aa725.0x06ca6351e003826f.0x142929670a0e6e70.0x27b70a8546d22ffc.0x2e1b21385c26c926.0x4d2c6dfc5ac42aed.0x53380d139d95b3df.0x650a73548baf63de.0x766a0abb3c77b2a8.0x81c2c92e47edaee6.0x92722c851482353b.0xa2bfe8a14cf10364.0xa81a664bbc423001.0xc24b8b70d0f89791.0xc76c51a30654be30.0xd192e819d6ef5218.0xd69906245565a910.0xf40e35855771202a.0x106aa07032bbd1b8.0x19a4c116b8d2d0c8.0x1e376c085141ab53.0x2748774cdf8eeb99.0x34b0bcb5e19b48a8.0x391c0cb3c5c95a63.0x4ed8aa4ae3418acb.0x5b9cca4f7763e373.0x682e6ff3d6b2b8a3.0x748f82ee5defb2fc.0x78a5636f43172f60.0x84c87814a1f0ab72.0x8cc702081a6439ec.0x90befffa23631e28.0xa4506cebde82bde9.0xbef9a3f7b2c67915.0xc67178f2e372532b.0xca273eceea26619c.0xd186b8c721c0c207.0xeada7dd6cde0eb1e.0xf57d4f7fee6ed178.0x06f067aa72176fba.0x0a637dc5a2c898a6.0x113f9804bef90dae.0x1b710b35131c471b.0x28db77f523047d84.0x32caab7b40c72493.0x3c9ebe0a15c9bebc.0x431d67c49c100d4c.0x4cc5d4becb3e42b6.0x597f299cfc657e2a.0x5fcb6fab3ad6faec.0x6c44198c4a475817`.split(`.`).map(e=>BigInt(e))),Fr=new Uint32Array(80),Ir=new Uint32Array(80),Lr=class extends mr{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:e,Al:t,Bh:n,Bl:r,Ch:i,Cl:a,Dh:o,Dl:s,Eh:c,El:l,Fh:u,Fl:d,Gh:f,Gl:p,Hh:m,Hl:h}=this;return[e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h]}set(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=r|0,this.Ch=i|0,this.Cl=a|0,this.Dh=o|0,this.Dl=s|0,this.Eh=c|0,this.El=l|0,this.Fh=u|0,this.Fl=d|0,this.Gh=f|0,this.Gl=p|0,this.Hh=m|0,this.Hl=h|0}process(e,t){for(let n=0;n<16;n++,t+=4)Fr[n]=e.getUint32(t),Ir[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){let t=Fr[e-15]|0,n=Ir[e-15]|0,r=J.rotrSH(t,n,1)^J.rotrSH(t,n,8)^J.shrSH(t,n,7),i=J.rotrSL(t,n,1)^J.rotrSL(t,n,8)^J.shrSL(t,n,7),a=Fr[e-2]|0,o=Ir[e-2]|0,s=J.rotrSH(a,o,19)^J.rotrBH(a,o,61)^J.shrSH(a,o,6),c=J.rotrSL(a,o,19)^J.rotrBL(a,o,61)^J.shrSL(a,o,6),l=J.add4L(i,c,Ir[e-7],Ir[e-16]);Fr[e]=J.add4H(l,r,s,Fr[e-7],Fr[e-16])|0,Ir[e]=l|0}let{Ah:n,Al:r,Bh:i,Bl:a,Ch:o,Cl:s,Dh:c,Dl:l,Eh:u,El:d,Fh:f,Fl:p,Gh:m,Gl:h,Hh:g,Hl:_}=this;for(let e=0;e<80;e++){let t=J.rotrSH(u,d,14)^J.rotrSH(u,d,18)^J.rotrBH(u,d,41),v=J.rotrSL(u,d,14)^J.rotrSL(u,d,18)^J.rotrBL(u,d,41),y=u&f^~u&m,b=d&p^~d&h,x=J.add5L(_,v,b,Pr[e],Ir[e]),S=J.add5H(x,g,t,y,Nr[e],Fr[e]),C=x|0,w=J.rotrSH(n,r,28)^J.rotrBH(n,r,34)^J.rotrBH(n,r,39),T=J.rotrSL(n,r,28)^J.rotrBL(n,r,34)^J.rotrBL(n,r,39),E=n&i^n&o^i&o,D=r&a^r&s^a&s;g=m|0,_=h|0,m=f|0,h=p|0,f=u|0,p=d|0,{h:u,l:d}=J.add(c|0,l|0,S|0,C|0),c=o|0,l=s|0,o=i|0,s=a|0,i=n|0,a=r|0;let O=J.add3L(C,T,D);n=J.add3H(O,S,w,E),r=O|0}({h:n,l:r}=J.add(this.Ah|0,this.Al|0,n|0,r|0)),{h:i,l:a}=J.add(this.Bh|0,this.Bl|0,i|0,a|0),{h:o,l:s}=J.add(this.Ch|0,this.Cl|0,o|0,s|0),{h:c,l}=J.add(this.Dh|0,this.Dl|0,c|0,l|0),{h:u,l:d}=J.add(this.Eh|0,this.El|0,u|0,d|0),{h:f,l:p}=J.add(this.Fh|0,this.Fl|0,f|0,p|0),{h:m,l:h}=J.add(this.Gh|0,this.Gl|0,m|0,h|0),{h:g,l:_}=J.add(this.Hh|0,this.Hl|0,g|0,_|0),this.set(n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_)}roundClean(){Fr.fill(0),Ir.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Rr=dr(()=>new Lr),zr=BigInt(0),Br=BigInt(1),Vr=BigInt(2);function Hr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function Ur(e){if(!Hr(e))throw Error(`Uint8Array expected`)}function Wr(e,t){if(typeof t!=`boolean`)throw Error(e+` boolean expected, got `+t)}var Gr=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function Kr(e){Ur(e);let t=``;for(let n=0;n<e.length;n++)t+=Gr[e[n]];return t}function qr(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);return e===``?zr:BigInt(`0x`+e)}var Jr={_0:48,_9:57,A:65,F:70,a:97,f:102};function Yr(e){if(e>=Jr._0&&e<=Jr._9)return e-Jr._0;if(e>=Jr.A&&e<=Jr.F)return e-(Jr.A-10);if(e>=Jr.a&&e<=Jr.f)return e-(Jr.a-10)}function Xr(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);let t=e.length,n=t/2;if(t%2)throw Error(`hex string expected, got unpadded hex of length `+t);let r=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){let n=Yr(e.charCodeAt(i)),a=Yr(e.charCodeAt(i+1));if(n===void 0||a===void 0){let t=e[i]+e[i+1];throw Error(`hex string expected, got non-hex character "`+t+`" at index `+i)}r[t]=n*16+a}return r}function Zr(e){return qr(Kr(e))}function Qr(e){return Ur(e),qr(Kr(Uint8Array.from(e).reverse()))}function $r(e,t){return Xr(e.toString(16).padStart(t*2,`0`))}function ei(e,t){return $r(e,t).reverse()}function ti(e,t,n){let r;if(typeof t==`string`)try{r=Xr(t)}catch(t){throw Error(e+` must be hex string or Uint8Array, cause: `+t)}else if(Hr(t))r=Uint8Array.from(t);else throw Error(e+` must be hex string or Uint8Array`);let i=r.length;if(typeof n==`number`&&i!==n)throw Error(e+` of length `+n+` expected, got `+i);return r}function ni(...e){let t=0;for(let n=0;n<e.length;n++){let r=e[n];Ur(r),t+=r.length}let n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){let i=e[t];n.set(i,r),r+=i.length}return n}var ri=e=>typeof e==`bigint`&&zr<=e;function ii(e,t,n){return ri(e)&&ri(t)&&ri(n)&&t<=e&&e<n}function ai(e,t,n,r){if(!ii(t,n,r))throw Error(`expected valid `+e+`: `+n+` <= n < `+r+`, got `+t)}function oi(e){let t;for(t=0;e>zr;e>>=Br,t+=1);return t}var si=e=>(Vr<<BigInt(e-1))-Br,ci={bigint:e=>typeof e==`bigint`,function:e=>typeof e==`function`,boolean:e=>typeof e==`boolean`,string:e=>typeof e==`string`,stringOrUint8Array:e=>typeof e==`string`||Hr(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e==`function`&&Number.isSafeInteger(e.outputLen)};function li(e,t,n={}){let r=(t,n,r)=>{let i=ci[n];if(typeof i!=`function`)throw Error(`invalid validator function`);let a=e[t];if(!(r&&a===void 0)&&!i(a,e))throw Error(`param `+String(t)+` is invalid. Expected `+n+`, got `+a)};for(let[e,n]of Object.entries(t))r(e,n,!1);for(let[e,t]of Object.entries(n))r(e,t,!0);return e}function ui(e){let t=new WeakMap;return(n,...r)=>{let i=t.get(n);if(i!==void 0)return i;let a=e(n,...r);return t.set(n,a),a}}var di=BigInt(0),fi=BigInt(1),pi=BigInt(2),mi=BigInt(3),hi=BigInt(4),gi=BigInt(5),_i=BigInt(8);function vi(e,t){let n=e%t;return n>=di?n:t+n}function yi(e,t,n){if(t<di)throw Error(`invalid exponent, negatives unsupported`);if(n<=di)throw Error(`invalid modulus`);if(n===fi)return di;let r=fi;for(;t>di;)t&fi&&(r=r*e%n),e=e*e%n,t>>=fi;return r}function bi(e,t,n){let r=e;for(;t-- >di;)r*=r,r%=n;return r}function xi(e,t){if(e===di)throw Error(`invert: expected non-zero number`);if(t<=di)throw Error(`invert: expected positive modulus, got `+t);let n=vi(e,t),r=t,i=di,a=fi;for(;n!==di;){let e=r/n,t=r%n,o=i-a*e;r=n,n=t,i=a,a=o}if(r!==fi)throw Error(`invert: does not exist`);return vi(i,t)}function Si(e){let t=(e-fi)/pi,n,r,i;for(n=e-fi,r=0;n%pi===di;n/=pi,r++);for(i=pi;i<e&&yi(i,t,e)!==e-fi;i++)if(i>1e3)throw Error(`Cannot find square root: likely non-prime P`);if(r===1){let t=(e+fi)/hi;return function(e,n){let r=e.pow(n,t);if(!e.eql(e.sqr(r),n))throw Error(`Cannot find square root`);return r}}let a=(n+fi)/pi;return function(e,o){if(e.pow(o,t)===e.neg(e.ONE))throw Error(`Cannot find square root`);let s=r,c=e.pow(e.mul(e.ONE,i),n),l=e.pow(o,a),u=e.pow(o,n);for(;!e.eql(u,e.ONE);){if(e.eql(u,e.ZERO))return e.ZERO;let t=1;for(let n=e.sqr(u);t<s&&!e.eql(n,e.ONE);t++)n=e.sqr(n);let n=e.pow(c,fi<<BigInt(s-t-1));c=e.sqr(n),l=e.mul(l,n),u=e.mul(u,c),s=t}return l}}function Ci(e){if(e%hi===mi){let t=(e+fi)/hi;return function(e,n){let r=e.pow(n,t);if(!e.eql(e.sqr(r),n))throw Error(`Cannot find square root`);return r}}if(e%_i===gi){let t=(e-gi)/_i;return function(e,n){let r=e.mul(n,pi),i=e.pow(r,t),a=e.mul(n,i),o=e.mul(e.mul(a,pi),i),s=e.mul(a,e.sub(o,e.ONE));if(!e.eql(e.sqr(s),n))throw Error(`Cannot find square root`);return s}}return Si(e)}var wi=(e,t)=>(vi(e,t)&fi)===fi,Ti=[`create`,`isValid`,`is0`,`neg`,`inv`,`sqrt`,`sqr`,`eql`,`add`,`sub`,`mul`,`pow`,`div`,`addN`,`subN`,`mulN`,`sqrN`];function Ei(e){return li(e,Ti.reduce((e,t)=>(e[t]=`function`,e),{ORDER:`bigint`,MASK:`bigint`,BYTES:`isSafeInteger`,BITS:`isSafeInteger`}))}function Di(e,t,n){if(n<di)throw Error(`invalid exponent, negatives unsupported`);if(n===di)return e.ONE;if(n===fi)return t;let r=e.ONE,i=t;for(;n>di;)n&fi&&(r=e.mul(r,i)),i=e.sqr(i),n>>=fi;return r}function Oi(e,t){let n=Array(t.length),r=t.reduce((t,r,i)=>e.is0(r)?t:(n[i]=t,e.mul(t,r)),e.ONE),i=e.inv(r);return t.reduceRight((t,r,i)=>e.is0(r)?t:(n[i]=e.mul(t,n[i]),e.mul(t,r)),i),n}function ki(e,t){let n=t===void 0?e.toString(2).length:t;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function Ai(e,t,n=!1,r={}){if(e<=di)throw Error(`invalid field: expected ORDER > 0, got `+e);let{nBitLength:i,nByteLength:a}=ki(e,t);if(a>2048)throw Error(`invalid field: expected ORDER of <= 2048 bytes`);let o,s=Object.freeze({ORDER:e,isLE:n,BITS:i,BYTES:a,MASK:si(i),ZERO:di,ONE:fi,create:t=>vi(t,e),isValid:t=>{if(typeof t!=`bigint`)throw Error(`invalid field element: expected bigint, got `+typeof t);return di<=t&&t<e},is0:e=>e===di,isOdd:e=>(e&fi)===fi,neg:t=>vi(-t,e),eql:(e,t)=>e===t,sqr:t=>vi(t*t,e),add:(t,n)=>vi(t+n,e),sub:(t,n)=>vi(t-n,e),mul:(t,n)=>vi(t*n,e),pow:(e,t)=>Di(s,e,t),div:(t,n)=>vi(t*xi(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>xi(t,e),sqrt:r.sqrt||(t=>(o||=Ci(e),o(s,t))),invertBatch:e=>Oi(s,e),cmov:(e,t,n)=>n?t:e,toBytes:e=>n?ei(e,a):$r(e,a),fromBytes:e=>{if(e.length!==a)throw Error(`Field.fromBytes: expected `+a+` bytes, got `+e.length);return n?Qr(e):Zr(e)}});return Object.freeze(s)}var ji=BigInt(0),Mi=BigInt(1);function Ni(e,t){let n=t.negate();return e?n:t}function Pi(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw Error(`invalid window size, expected [1..`+t+`], got W=`+e)}function Fi(e,t){return Pi(e,t),{windows:Math.ceil(t/e)+1,windowSize:2**(e-1)}}function Ii(e,t){if(!Array.isArray(e))throw Error(`array expected`);e.forEach((e,n)=>{if(!(e instanceof t))throw Error(`invalid point at index `+n)})}function Li(e,t){if(!Array.isArray(e))throw Error(`array of scalars expected`);e.forEach((e,n)=>{if(!t.isValid(e))throw Error(`invalid scalar at index `+n)})}var Ri=new WeakMap,zi=new WeakMap;function Bi(e){return zi.get(e)||1}function Vi(e,t){return{constTimeNegate:Ni,hasPrecomputes(e){return Bi(e)!==1},unsafeLadder(t,n,r=e.ZERO){let i=t;for(;n>ji;)n&Mi&&(r=r.add(i)),i=i.double(),n>>=Mi;return r},precomputeWindow(e,n){let{windows:r,windowSize:i}=Fi(n,t),a=[],o=e,s=o;for(let e=0;e<r;e++){s=o,a.push(s);for(let e=1;e<i;e++)s=s.add(o),a.push(s);o=s.double()}return a},wNAF(n,r,i){let{windows:a,windowSize:o}=Fi(n,t),s=e.ZERO,c=e.BASE,l=BigInt(2**n-1),u=2**n,d=BigInt(n);for(let e=0;e<a;e++){let t=e*o,n=Number(i&l);i>>=d,n>o&&(n-=u,i+=Mi);let a=t,f=t+Math.abs(n)-1,p=e%2!=0,m=n<0;n===0?c=c.add(Ni(p,r[a])):s=s.add(Ni(m,r[f]))}return{p:s,f:c}},wNAFUnsafe(n,r,i,a=e.ZERO){let{windows:o,windowSize:s}=Fi(n,t),c=BigInt(2**n-1),l=2**n,u=BigInt(n);for(let e=0;e<o;e++){let t=e*s;if(i===ji)break;let n=Number(i&c);if(i>>=u,n>s&&(n-=l,i+=Mi),n===0)continue;let o=r[t+Math.abs(n)-1];n<0&&(o=o.negate()),a=a.add(o)}return a},getPrecomputes(e,t,n){let r=Ri.get(t);return r||(r=this.precomputeWindow(t,e),e!==1&&Ri.set(t,n(r))),r},wNAFCached(e,t,n){let r=Bi(e);return this.wNAF(r,this.getPrecomputes(r,e,n),t)},wNAFCachedUnsafe(e,t,n,r){let i=Bi(e);return i===1?this.unsafeLadder(e,t,r):this.wNAFUnsafe(i,this.getPrecomputes(i,e,n),t,r)},setWindowSize(e,n){Pi(n,t),zi.set(e,n),Ri.delete(e)}}}function Hi(e,t,n,r){if(Ii(n,e),Li(r,t),n.length!==r.length)throw Error(`arrays of points and scalars must have equal length`);let i=e.ZERO,a=oi(BigInt(n.length)),o=a>12?a-3:a>4?a-2:a?2:1,s=(1<<o)-1,c=Array(s+1).fill(i),l=Math.floor((t.BITS-1)/o)*o,u=i;for(let e=l;e>=0;e-=o){c.fill(i);for(let t=0;t<r.length;t++){let i=r[t],a=Number(i>>BigInt(e)&BigInt(s));c[a]=c[a].add(n[t])}let t=i;for(let e=c.length-1,n=i;e>0;e--)n=n.add(c[e]),t=t.add(n);if(u=u.add(t),e!==0)for(let e=0;e<o;e++)u=u.double()}return u}function Ui(e){return Ei(e.Fp),li(e,{n:`bigint`,h:`bigint`,Gx:`field`,Gy:`field`},{nBitLength:`isSafeInteger`,nByteLength:`isSafeInteger`}),Object.freeze({...ki(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Wi=BigInt(0),Gi=BigInt(1),Ki=BigInt(2),qi=BigInt(8),Ji={zip215:!0};function Yi(e){let t=Ui(e);return li(e,{hash:`function`,a:`bigint`,d:`bigint`,randomBytes:`function`},{adjustScalarBytes:`function`,domain:`function`,uvRatio:`function`,mapToCurve:`function`}),Object.freeze({...t})}function Xi(e){let t=Yi(e),{Fp:n,n:r,prehash:i,hash:a,randomBytes:o,nByteLength:s,h:c}=t,l=Ki<<BigInt(s*8)-Gi,u=n.create,d=Ai(t.n,t.nBitLength),f=t.uvRatio||((e,t)=>{try{return{isValid:!0,value:n.sqrt(e*n.inv(t))}}catch{return{isValid:!1,value:Wi}}}),p=t.adjustScalarBytes||(e=>e),m=t.domain||((e,t,n)=>{if(Wr(`phflag`,n),t.length||n)throw Error(`Contexts/pre-hash are not supported`);return e});function h(e,t){ai(`coordinate `+e,t,Wi,l)}function g(e){if(!(e instanceof y))throw Error(`ExtendedPoint expected`)}let _=ui((e,t)=>{let{ex:r,ey:i,ez:a}=e,o=e.is0();t??=o?qi:n.inv(a);let s=u(r*t),c=u(i*t),l=u(a*t);if(o)return{x:Wi,y:Gi};if(l!==Gi)throw Error(`invZ was invalid`);return{x:s,y:c}}),v=ui(e=>{let{a:n,d:r}=t;if(e.is0())throw Error(`bad point: ZERO`);let{ex:i,ey:a,ez:o,et:s}=e,c=u(i*i),l=u(a*a),d=u(o*o),f=u(d*d);if(u(d*u(u(c*n)+l))!==u(f+u(r*u(c*l))))throw Error(`bad point: equation left != right (1)`);if(u(i*a)!==u(o*s))throw Error(`bad point: equation left != right (2)`);return!0});class y{constructor(e,t,n,r){this.ex=e,this.ey=t,this.ez=n,this.et=r,h(`x`,e),h(`y`,t),h(`z`,n),h(`t`,r),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(e){if(e instanceof y)throw Error(`extended point not allowed`);let{x:t,y:n}=e||{};return h(`x`,t),h(`y`,n),new y(t,n,Gi,u(t*n))}static normalizeZ(e){let t=n.invertBatch(e.map(e=>e.ez));return e.map((e,n)=>e.toAffine(t[n])).map(y.fromAffine)}static msm(e,t){return Hi(y,d,e,t)}_setWindowSize(e){S.setWindowSize(this,e)}assertValidity(){v(this)}equals(e){g(e);let{ex:t,ey:n,ez:r}=this,{ex:i,ey:a,ez:o}=e,s=u(t*o),c=u(i*r),l=u(n*o),d=u(a*r);return s===c&&l===d}is0(){return this.equals(y.ZERO)}negate(){return new y(u(-this.ex),this.ey,this.ez,u(-this.et))}double(){let{a:e}=t,{ex:n,ey:r,ez:i}=this,a=u(n*n),o=u(r*r),s=u(Ki*u(i*i)),c=u(e*a),l=n+r,d=u(u(l*l)-a-o),f=c+o,p=f-s,m=c-o,h=u(d*p),g=u(f*m),_=u(d*m);return new y(h,g,u(p*f),_)}add(e){g(e);let{a:n,d:r}=t,{ex:i,ey:a,ez:o,et:s}=this,{ex:c,ey:l,ez:d,et:f}=e;if(n===BigInt(-1)){let e=u((a-i)*(l+c)),t=u((a+i)*(l-c)),n=u(t-e);if(n===Wi)return this.double();let r=u(o*Ki*f),p=u(s*Ki*d),m=p+r,h=t+e,g=p-r,_=u(m*n),v=u(h*g),b=u(m*g);return new y(_,v,u(n*h),b)}let p=u(i*c),m=u(a*l),h=u(s*r*f),_=u(o*d),v=u((i+a)*(c+l)-p-m),b=_-h,x=_+h,S=u(m-n*p),C=u(v*b),w=u(x*S),T=u(v*S);return new y(C,w,u(b*x),T)}subtract(e){return this.add(e.negate())}wNAF(e){return S.wNAFCached(this,e,y.normalizeZ)}multiply(e){let t=e;ai(`scalar`,t,Gi,r);let{p:n,f:i}=this.wNAF(t);return y.normalizeZ([n,i])[0]}multiplyUnsafe(e,t=y.ZERO){let n=e;return ai(`scalar`,n,Wi,r),n===Wi?x:this.is0()||n===Gi?this:S.wNAFCachedUnsafe(this,n,y.normalizeZ,t)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return S.unsafeLadder(this,r).is0()}toAffine(e){return _(this,e)}clearCofactor(){let{h:e}=t;return e===Gi?this:this.multiplyUnsafe(e)}static fromHex(e,r=!1){let{d:i,a}=t,o=n.BYTES;e=ti(`pointHex`,e,o),Wr(`zip215`,r);let s=e.slice(),c=e[o-1];s[o-1]=c&-129;let d=Qr(s);ai(`pointHex.y`,d,Wi,r?l:n.ORDER);let p=u(d*d),{isValid:m,value:h}=f(u(p-Gi),u(i*p-a));if(!m)throw Error(`Point.fromHex: invalid y coordinate`);let g=(h&Gi)===Gi,_=(c&128)!=0;if(!r&&h===Wi&&_)throw Error(`Point.fromHex: x=0 and x_0=1`);return _!==g&&(h=u(-h)),y.fromAffine({x:h,y:d})}static fromPrivateKey(e){return T(e).point}toRawBytes(){let{x:e,y:t}=this.toAffine(),r=ei(t,n.BYTES);return r[r.length-1]|=e&Gi?128:0,r}toHex(){return Kr(this.toRawBytes())}}y.BASE=new y(t.Gx,t.Gy,Gi,u(t.Gx*t.Gy)),y.ZERO=new y(Wi,Gi,Gi,Wi);let{BASE:b,ZERO:x}=y,S=Vi(y,s*8);function C(e){return vi(e,r)}function w(e){return C(Qr(e))}function T(e){let t=n.BYTES;e=ti(`private key`,e,t);let r=ti(`hashed private key`,a(e),2*t),i=p(r.slice(0,t)),o=r.slice(t,2*t),s=w(i),c=b.multiply(s);return{head:i,prefix:o,scalar:s,point:c,pointBytes:c.toRawBytes()}}function E(e){return T(e).pointBytes}function D(e=new Uint8Array,...t){return w(a(m(ni(...t),ti(`context`,e),!!i)))}function O(e,t,a={}){e=ti(`message`,e),i&&(e=i(e));let{prefix:o,scalar:s,pointBytes:c}=T(t),l=D(a.context,o,e),u=b.multiply(l).toRawBytes(),d=C(l+D(a.context,u,c,e)*s);return ai(`signature.s`,d,Wi,r),ti(`result`,ni(u,ei(d,n.BYTES)),n.BYTES*2)}let k=Ji;function A(e,t,r,a=k){let{context:o,zip215:s}=a,c=n.BYTES;e=ti(`signature`,e,2*c),t=ti(`message`,t),r=ti(`publicKey`,r,c),s!==void 0&&Wr(`zip215`,s),i&&(t=i(t));let l=Qr(e.slice(c,2*c)),u,d,f;try{u=y.fromHex(r,s),d=y.fromHex(e.slice(0,c),s),f=b.multiplyUnsafe(l)}catch{return!1}if(!s&&u.isSmallOrder())return!1;let p=D(o,d.toRawBytes(),u.toRawBytes(),t);return d.add(u.multiplyUnsafe(p)).subtract(f).clearCofactor().equals(y.ZERO)}return b._setWindowSize(8),{CURVE:t,getPublicKey:E,sign:O,verify:A,ExtendedPoint:y,utils:{getExtendedPublicKey:T,randomPrivateKey:()=>o(n.BYTES),precompute(e=8,t=y.BASE){return t._setWindowSize(e),t.multiply(BigInt(3)),t}}}}var Zi=BigInt(`57896044618658097711785492504343953926634992332820282019728792003956564819949`),Qi=BigInt(`19681161376707505956807079304988542015446066515923890162744021073123829784752`),$i=BigInt(1),ea=BigInt(2),ta=BigInt(5),na=BigInt(8);function ra(e){let t=BigInt(10),n=BigInt(20),r=BigInt(40),i=BigInt(80),a=Zi,o=e*e%a*e%a,s=bi(bi(o,ea,a)*o%a,$i,a)*e%a,c=bi(s,ta,a)*s%a,l=bi(c,t,a)*c%a,u=bi(l,n,a)*l%a,d=bi(u,r,a)*u%a;return{pow_p_5_8:bi(bi(bi(bi(d,i,a)*d%a,i,a)*d%a,t,a)*c%a,ea,a)*e%a,b2:o}}function ia(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function aa(e,t){let n=Zi,r=vi(t*t*t,n),i=ra(e*vi(r*r*t,n)).pow_p_5_8,a=vi(e*r*i,n),o=vi(t*a*a,n),s=a,c=vi(a*Qi,n),l=o===e,u=o===vi(-e,n),d=o===vi(-e*Qi,n);return l&&(a=s),(u||d)&&(a=c),wi(a,n)&&(a=vi(-a,n)),{isValid:l||u,value:a}}var oa=Ai(Zi,void 0,!0),sa=Xi({a:BigInt(-1),d:BigInt(`37095705934669439343138083508754565189542113879843219016388785533085940283555`),Fp:oa,n:BigInt(`7237005577332262213973186563042994240857116359379907606001950938285454250989`),h:na,Gx:BigInt(`15112221349535400772501151409588531511454012693041857206046113283949847762202`),Gy:BigInt(`46316835694926478169428394003475163141307993866256225615783033603165251855960`),hash:Rr,randomBytes:fr,adjustScalarBytes:ia,uvRatio:aa}),ca=`EdDSA`,la=`base64url`,ua=`utf8`,da=`utf8`,fa=`base58btc`;function pa(e){return globalThis.Buffer==null?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function ma(e=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?pa(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function ha(e,t){t||=e.reduce((e,t)=>e+t.length,0);let n=ma(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return pa(n)}function ga(e,t){if(e.length>=255)throw TypeError(`Alphabet too long`);for(var n=new Uint8Array(256),r=0;r<n.length;r++)n[r]=255;for(var i=0;i<e.length;i++){var a=e.charAt(i),o=a.charCodeAt(0);if(n[o]!==255)throw TypeError(a+` is ambiguous`);n[o]=i}var s=e.length,c=e.charAt(0),l=Math.log(s)/Math.log(256),u=Math.log(256)/Math.log(s);function d(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw TypeError(`Expected Uint8Array`);if(t.length===0)return``;for(var n=0,r=0,i=0,a=t.length;i!==a&&t[i]===0;)i++,n++;for(var o=(a-i)*u+1>>>0,l=new Uint8Array(o);i!==a;){for(var d=t[i],f=0,p=o-1;(d!==0||f<r)&&p!==-1;p--,f++)d+=256*l[p]>>>0,l[p]=d%s>>>0,d=d/s>>>0;if(d!==0)throw Error(`Non-zero carry`);r=f,i++}for(var m=o-r;m!==o&&l[m]===0;)m++;for(var h=c.repeat(n);m<o;++m)h+=e.charAt(l[m]);return h}function f(e){if(typeof e!=`string`)throw TypeError(`Expected String`);if(e.length===0)return new Uint8Array;var t=0;if(e[t]!==` `){for(var r=0,i=0;e[t]===c;)r++,t++;for(var a=(e.length-t)*l+1>>>0,o=new Uint8Array(a);e[t];){var u=n[e.charCodeAt(t)];if(u===255)return;for(var d=0,f=a-1;(u!==0||d<i)&&f!==-1;f--,d++)u+=s*o[f]>>>0,o[f]=u%256>>>0,u=u/256>>>0;if(u!==0)throw Error(`Non-zero carry`);i=d,t++}if(e[t]!==` `){for(var p=a-i;p!==a&&o[p]===0;)p++;for(var m=new Uint8Array(r+(a-p)),h=r;p!==a;)m[h++]=o[p++];return m}}}function p(e){var n=f(e);if(n)return n;throw Error(`Non-${t} character`)}return{encode:d,decodeUnsafe:f,decode:p}}var _a=ga,va=e=>{if(e instanceof Uint8Array&&e.constructor.name===`Uint8Array`)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw Error(`Unknown type, must be binary type`)},ya=e=>new TextEncoder().encode(e),ba=e=>new TextDecoder().decode(e),xa=class{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error(`Unknown type, must be binary type`)}},Sa=class{constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw Error(`Invalid prefix character`);this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}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 wa(this,e)}},Ca=class{constructor(e){this.decoders=e}or(e){return wa(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},wa=(e,t)=>new Ca({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),Ta=class{constructor(e,t,n,r){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=r,this.encoder=new xa(e,t,n),this.decoder=new Sa(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Ea=({name:e,prefix:t,encode:n,decode:r})=>new Ta(e,t,n,r),Da=({prefix:e,name:t,alphabet:n})=>{let{encode:r,decode:i}=_a(n,t);return Ea({prefix:e,name:t,encode:r,decode:e=>va(i(e))})},Oa=(e,t,n,r)=>{let i={};for(let e=0;e<t.length;++e)i[t[e]]=e;let a=e.length;for(;e[a-1]===`=`;)--a;let o=new Uint8Array(a*n/8|0),s=0,c=0,l=0;for(let t=0;t<a;++t){let a=i[e[t]];if(a===void 0)throw SyntaxError(`Non-${r} character`);c=c<<n|a,s+=n,s>=8&&(s-=8,o[l++]=255&c>>s)}if(s>=n||255&c<<8-s)throw SyntaxError(`Unexpected end of data`);return o},ka=(e,t,n)=>{let r=t[t.length-1]===`=`,i=(1<<n)-1,a=``,o=0,s=0;for(let r=0;r<e.length;++r)for(s=s<<8|e[r],o+=8;o>n;)o-=n,a+=t[i&s>>o];if(o&&(a+=t[i&s<<n-o]),r)for(;a.length*n&7;)a+=`=`;return a},Aa=({name:e,prefix:t,bitsPerChar:n,alphabet:r})=>Ea({prefix:t,name:e,encode(e){return ka(e,r,n)},decode(t){return Oa(t,r,n,e)}}),ja=Ea({prefix:`\0`,name:`identity`,encode:e=>ba(e),decode:e=>ya(e)}),Ma=Object.freeze({__proto__:null,identity:ja}),Na=Aa({prefix:`0`,name:`base2`,alphabet:`01`,bitsPerChar:1}),Pa=Object.freeze({__proto__:null,base2:Na}),Fa=Aa({prefix:`7`,name:`base8`,alphabet:`01234567`,bitsPerChar:3}),Ia=Object.freeze({__proto__:null,base8:Fa}),La=Da({prefix:`9`,name:`base10`,alphabet:`0123456789`}),Ra=Object.freeze({__proto__:null,base10:La}),za=Aa({prefix:`f`,name:`base16`,alphabet:`0123456789abcdef`,bitsPerChar:4}),Ba=Aa({prefix:`F`,name:`base16upper`,alphabet:`0123456789ABCDEF`,bitsPerChar:4}),Va=Object.freeze({__proto__:null,base16:za,base16upper:Ba}),Ha=Aa({prefix:`b`,name:`base32`,alphabet:`abcdefghijklmnopqrstuvwxyz234567`,bitsPerChar:5}),Ua=Aa({prefix:`B`,name:`base32upper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`,bitsPerChar:5}),Wa=Aa({prefix:`c`,name:`base32pad`,alphabet:`abcdefghijklmnopqrstuvwxyz234567=`,bitsPerChar:5}),Ga=Aa({prefix:`C`,name:`base32padupper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=`,bitsPerChar:5}),Ka=Aa({prefix:`v`,name:`base32hex`,alphabet:`0123456789abcdefghijklmnopqrstuv`,bitsPerChar:5}),qa=Aa({prefix:`V`,name:`base32hexupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV`,bitsPerChar:5}),Ja=Aa({prefix:`t`,name:`base32hexpad`,alphabet:`0123456789abcdefghijklmnopqrstuv=`,bitsPerChar:5}),Ya=Aa({prefix:`T`,name:`base32hexpadupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV=`,bitsPerChar:5}),Xa=Aa({prefix:`h`,name:`base32z`,alphabet:`ybndrfg8ejkmcpqxot1uwisza345h769`,bitsPerChar:5}),Za=Object.freeze({__proto__:null,base32:Ha,base32upper:Ua,base32pad:Wa,base32padupper:Ga,base32hex:Ka,base32hexupper:qa,base32hexpad:Ja,base32hexpadupper:Ya,base32z:Xa}),Qa=Da({prefix:`k`,name:`base36`,alphabet:`0123456789abcdefghijklmnopqrstuvwxyz`}),$a=Da({prefix:`K`,name:`base36upper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ`}),eo=Object.freeze({__proto__:null,base36:Qa,base36upper:$a}),to=Da({name:`base58btc`,prefix:`z`,alphabet:`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`}),no=Da({name:`base58flickr`,prefix:`Z`,alphabet:`123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ`}),ro=Object.freeze({__proto__:null,base58btc:to,base58flickr:no}),io=Aa({prefix:`m`,name:`base64`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,bitsPerChar:6}),ao=Aa({prefix:`M`,name:`base64pad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`,bitsPerChar:6}),oo=Aa({prefix:`u`,name:`base64url`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,bitsPerChar:6}),so=Aa({prefix:`U`,name:`base64urlpad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=`,bitsPerChar:6}),co=Object.freeze({__proto__:null,base64:io,base64pad:ao,base64url:oo,base64urlpad:so}),lo=Array.from(`🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂`),uo=lo.reduce((e,t,n)=>(e[n]=t,e),[]),fo=lo.reduce((e,t,n)=>(e[t.codePointAt(0)]=n,e),[]);function po(e){return e.reduce((e,t)=>(e+=uo[t],e),``)}function mo(e){let t=[];for(let n of e){let e=fo[n.codePointAt(0)];if(e===void 0)throw Error(`Non-base256emoji character: ${n}`);t.push(e)}return new Uint8Array(t)}var ho=Ea({prefix:`🚀`,name:`base256emoji`,encode:po,decode:mo}),go=Object.freeze({__proto__:null,base256emoji:ho}),_o=xo,vo=128,yo=-128,bo=2**31;function xo(e,t,n){t||=[],n||=0;for(var r=n;e>=bo;)t[n++]=e&255|vo,e/=128;for(;e&yo;)t[n++]=e&255|vo,e>>>=7;return t[n]=e|0,xo.bytes=n-r+1,t}var So=To,Co=128,wo=127;function To(e,t){var n=0,t=t||0,r=0,i=t,a,o=e.length;do{if(i>=o)throw To.bytes=0,RangeError(`Could not decode varint`);a=e[i++],n+=r<28?(a&wo)<<r:(a&wo)*2**r,r+=7}while(a>=Co);return To.bytes=i-t,n}var Eo=2**7,Do=2**14,Oo=2**21,ko=2**28,Ao=2**35,jo=2**42,Mo=2**49,No=2**56,Po=2**63,Fo={encode:_o,decode:So,encodingLength:function(e){return e<Eo?1:e<Do?2:e<Oo?3:e<ko?4:e<Ao?5:e<jo?6:e<Mo?7:e<No?8:e<Po?9:10}},Io=(e,t,n=0)=>(Fo.encode(e,t,n),t),Lo=e=>Fo.encodingLength(e),Ro=(e,t)=>{let n=t.byteLength,r=Lo(e),i=r+Lo(n),a=new Uint8Array(i+n);return Io(e,a,0),Io(n,a,r),a.set(t,i),new zo(e,n,t,a)},zo=class{constructor(e,t,n,r){this.code=e,this.size=t,this.digest=n,this.bytes=r}},Bo=({name:e,code:t,encode:n})=>new Vo(e,t,n),Vo=class{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?Ro(this.code,t):t.then(e=>Ro(this.code,e))}else throw Error(`Unknown type, must be binary type`)}},Ho=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),Uo=Bo({name:`sha2-256`,code:18,encode:Ho(`SHA-256`)}),Wo=Bo({name:`sha2-512`,code:19,encode:Ho(`SHA-512`)}),Go=Object.freeze({__proto__:null,sha256:Uo,sha512:Wo}),Ko=0,qo=`identity`,Jo=va,Yo=Object.freeze({__proto__:null,identity:{code:Ko,name:qo,encode:Jo,digest:e=>Ro(Ko,Jo(e))}});new TextEncoder,new TextDecoder;var Xo={...Ma,...Pa,...Ia,...Ra,...Va,...Za,...eo,...ro,...co,...go};({...Go,...Yo});function Zo(e,t,n,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:n},decoder:{decode:r}}}var Qo=Zo(`utf8`,`u`,e=>`u`+new TextDecoder(`utf8`).decode(e),e=>new TextEncoder().encode(e.substring(1))),$o=Zo(`ascii`,`a`,e=>{let t=`a`;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t},e=>{e=e.substring(1);let t=ma(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}),es={utf8:Qo,"utf-8":Qo,hex:Xo.base16,latin1:$o,ascii:$o,binary:$o,...Xo};function ts(e,t=`utf8`){let n=es[t];if(!n)throw Error(`Unsupported encoding "${t}"`);return(t===`utf8`||t===`utf-8`)&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString(`utf8`):n.encoder.encode(e).substring(1)}function ns(e,t=`utf8`){let n=es[t];if(!n)throw Error(`Unsupported encoding "${t}"`);return(t===`utf8`||t===`utf-8`)&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?pa(globalThis.Buffer.from(e,`utf-8`)):n.decoder.decode(`${n.prefix}${e}`)}function rs(e){return pe(ts(ns(e,la),ua))}function is(e){return ts(ns(f(e),ua),la)}function as(e){return[`did`,`key`,`z`+ts(ha([ns(`K36`,fa),e]),fa)].join(`:`)}function os(e){return ts(e,la)}function ss(e){return ns(e,la)}function cs(e){return ns([is(e.header),is(e.payload)].join(`.`),da)}function ls(e){return[is(e.header),is(e.payload),os(e.signature)].join(`.`)}function us(e){let t=e.split(`.`);return{header:rs(t[0]),payload:rs(t[1]),signature:ss(t[2]),data:ns(t.slice(0,2).join(`.`),da)}}function ds(e=fr(32)){let t=sa.getPublicKey(e);return{secretKey:ha([e,t]),publicKey:t}}async function fs(e,t,n,r,i=(0,q.fromMiliseconds)(Date.now())){let a={alg:ca,typ:`JWT`},o={iss:as(r.publicKey),sub:e,aud:t,iat:i,exp:i+n},s=cs({header:a,payload:o});return ls({header:a,payload:o,signature:sa.sign(s,r.secretKey.slice(0,32))})}var ps=function(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))},ms=function(){function e(e,t,n){this.name=e,this.version=t,this.os=n,this.type=`browser`}return e}(),hs=function(){function e(e){this.version=e,this.type=`node`,this.name=`node`,this.os=process.platform}return e}(),gs=function(){function e(e,t,n,r){this.name=e,this.version=t,this.os=n,this.bot=r,this.type=`bot-device`}return e}(),_s=function(){function e(){this.type=`bot`,this.bot=!0,this.name=`bot`,this.version=null,this.os=null}return e}(),vs=function(){function e(){this.type=`react-native`,this.name=`react-native`,this.version=null,this.os=null}return e}(),ys=/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/,bs=/(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\ Jeeves\/Teoma|ia_archiver)/,xs=3,Ss=[[`aol`,/AOLShield\/([0-9\._]+)/],[`edge`,/Edge\/([0-9\._]+)/],[`edge-ios`,/EdgiOS\/([0-9\._]+)/],[`yandexbrowser`,/YaBrowser\/([0-9\._]+)/],[`kakaotalk`,/KAKAOTALK\s([0-9\.]+)/],[`samsung`,/SamsungBrowser\/([0-9\.]+)/],[`silk`,/\bSilk\/([0-9._-]+)\b/],[`miui`,/MiuiBrowser\/([0-9\.]+)$/],[`beaker`,/BeakerBrowser\/([0-9\.]+)/],[`edge-chromium`,/EdgA?\/([0-9\.]+)/],[`chromium-webview`,/(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],[`chrome`,/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],[`phantomjs`,/PhantomJS\/([0-9\.]+)(:?\s|$)/],[`crios`,/CriOS\/([0-9\.]+)(:?\s|$)/],[`firefox`,/Firefox\/([0-9\.]+)(?:\s|$)/],[`fxios`,/FxiOS\/([0-9\.]+)/],[`opera-mini`,/Opera Mini.*Version\/([0-9\.]+)/],[`opera`,/Opera\/([0-9\.]+)(?:\s|$)/],[`opera`,/OPR\/([0-9\.]+)(:?\s|$)/],[`pie`,/^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/],[`pie`,/^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/],[`netfront`,/^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/],[`ie`,/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],[`ie`,/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],[`ie`,/MSIE\s(7\.0)/],[`bb10`,/BB10;\sTouch.*Version\/([0-9\.]+)/],[`android`,/Android\s([0-9\.]+)/],[`ios`,/Version\/([0-9\._]+).*Mobile.*Safari.*/],[`safari`,/Version\/([0-9\._]+).*Safari/],[`facebook`,/FB[AS]V\/([0-9\.]+)/],[`instagram`,/Instagram\s([0-9\.]+)/],[`ios-webview`,/AppleWebKit\/([0-9\.]+).*Mobile/],[`ios-webview`,/AppleWebKit\/([0-9\.]+).*Gecko\)$/],[`curl`,/^curl\/([0-9\.]+)$/],[`searchbot`,ys]],Cs=[[`iOS`,/iP(hone|od|ad)/],[`Android OS`,/Android/],[`BlackBerry OS`,/BlackBerry|BB10/],[`Windows Mobile`,/IEMobile/],[`Amazon OS`,/Kindle/],[`Windows 3.11`,/Win16/],[`Windows 95`,/(Windows 95)|(Win95)|(Windows_95)/],[`Windows 98`,/(Windows 98)|(Win98)/],[`Windows 2000`,/(Windows NT 5.0)|(Windows 2000)/],[`Windows XP`,/(Windows NT 5.1)|(Windows XP)/],[`Windows Server 2003`,/(Windows NT 5.2)/],[`Windows Vista`,/(Windows NT 6.0)/],[`Windows 7`,/(Windows NT 6.1)/],[`Windows 8`,/(Windows NT 6.2)/],[`Windows 8.1`,/(Windows NT 6.3)/],[`Windows 10`,/(Windows NT 10.0)/],[`Windows ME`,/Windows ME/],[`Windows CE`,/Windows CE|WinCE|Microsoft Pocket Internet Explorer/],[`Open BSD`,/OpenBSD/],[`Sun OS`,/SunOS/],[`Chrome OS`,/CrOS/],[`Linux`,/(Linux)|(X11)/],[`Mac OS`,/(Mac_PowerPC)|(Macintosh)/],[`QNX`,/QNX/],[`BeOS`,/BeOS/],[`OS/2`,/OS\/2/]];function ws(e){return e?Es(e):typeof document>`u`&&typeof navigator<`u`&&navigator.product===`ReactNative`?new vs:typeof navigator<`u`?Es(navigator.userAgent):Os()}function Ts(e){return e!==``&&Ss.reduce(function(t,n){var r=n[0],i=n[1];if(t)return t;var a=i.exec(e);return!!a&&[r,a]},!1)}function Es(e){var t=Ts(e);if(!t)return null;var n=t[0],r=t[1];if(n===`searchbot`)return new _s;var i=r[1]&&r[1].split(`.`).join(`_`).split(`_`).slice(0,3);i?i.length<xs&&(i=ps(ps([],i,!0),ks(xs-i.length),!0)):i=[];var a=i.join(`.`),o=Ds(e),s=bs.exec(e);return s&&s[1]?new gs(n,a,o,s[1]):new ms(n,a,o)}function Ds(e){for(var t=0,n=Cs.length;t<n;t++){var r=Cs[t],i=r[0];if(r[1].exec(e))return i}return null}function Os(){return typeof process<`u`&&process.version?new hs(process.version.slice(1)):null}function ks(e){for(var t=[],n=0;n<e;n++)t.push(`0`);return t}var As=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getLocalStorage=e.getLocalStorageOrThrow=e.getCrypto=e.getCryptoOrThrow=e.getLocation=e.getLocationOrThrow=e.getNavigator=e.getNavigatorOrThrow=e.getDocument=e.getDocumentOrThrow=e.getFromWindowOrThrow=e.getFromWindow=void 0;function t(e){let t;return typeof window<`u`&&window[e]!==void 0&&(t=window[e]),t}e.getFromWindow=t;function n(e){let n=t(e);if(!n)throw Error(`${e} is not defined in Window`);return n}e.getFromWindowOrThrow=n;function r(){return n(`document`)}e.getDocumentOrThrow=r;function i(){return t(`document`)}e.getDocument=i;function a(){return n(`navigator`)}e.getNavigatorOrThrow=a;function o(){return t(`navigator`)}e.getNavigator=o;function s(){return n(`location`)}e.getLocationOrThrow=s;function c(){return t(`location`)}e.getLocation=c;function l(){return n(`crypto`)}e.getCryptoOrThrow=l;function u(){return t(`crypto`)}e.getCrypto=u;function d(){return n(`localStorage`)}e.getLocalStorageOrThrow=d;function f(){return t(`localStorage`)}e.getLocalStorage=f})),js=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getWindowMetadata=void 0;var t=As();function n(){let e,n;try{e=t.getDocumentOrThrow(),n=t.getLocationOrThrow()}catch{return null}function r(){let t=e.getElementsByTagName(`link`),r=[];for(let e=0;e<t.length;e++){let i=t[e],a=i.getAttribute(`rel`);if(a&&a.toLowerCase().indexOf(`icon`)>-1){let e=i.getAttribute(`href`);if(e)if(e.toLowerCase().indexOf(`https:`)===-1&&e.toLowerCase().indexOf(`http:`)===-1&&e.indexOf(`//`)!==0){let t=n.protocol+`//`+n.host;if(e.indexOf(`/`)===0)t+=e;else{let r=n.pathname.split(`/`);r.pop();let i=r.join(`/`);t+=i+`/`+e}r.push(t)}else if(e.indexOf(`//`)===0){let t=n.protocol+e;r.push(t)}else r.push(e)}}return r}function i(...t){let n=e.getElementsByTagName(`meta`);for(let e=0;e<n.length;e++){let r=n[e],i=[`itemprop`,`property`,`name`].map(e=>r.getAttribute(e)).filter(e=>e?t.includes(e):!1);if(i.length&&i){let e=r.getAttribute(`content`);if(e)return e}}return``}function a(){let t=i(`name`,`og:site_name`,`og:title`,`twitter:title`);return t||=e.title,t}function o(){return i(`description`,`og:description`,`twitter:description`,`keywords`)}let s=a();return{description:o(),url:n.origin,icons:r(),name:s}}e.getWindowMetadata=n})),Ms=As(),Ns=js();function Ps(e){if(e.length>=255)throw TypeError(`Alphabet too long`);let t=new Uint8Array(256);for(let e=0;e<t.length;e++)t[e]=255;for(let n=0;n<e.length;n++){let r=e.charAt(n),i=r.charCodeAt(0);if(t[i]!==255)throw TypeError(r+` is ambiguous`);t[i]=n}let n=e.length,r=e.charAt(0),i=Math.log(n)/Math.log(256),a=Math.log(256)/Math.log(n);function o(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw TypeError(`Expected Uint8Array`);if(t.length===0)return``;let i=0,o=0,s=0,c=t.length;for(;s!==c&&t[s]===0;)s++,i++;let l=(c-s)*a+1>>>0,u=new Uint8Array(l);for(;s!==c;){let e=t[s],r=0;for(let t=l-1;(e!==0||r<o)&&t!==-1;t--,r++)e+=256*u[t]>>>0,u[t]=e%n>>>0,e=e/n>>>0;if(e!==0)throw Error(`Non-zero carry`);o=r,s++}let d=l-o;for(;d!==l&&u[d]===0;)d++;let f=r.repeat(i);for(;d<l;++d)f+=e.charAt(u[d]);return f}function s(e){if(typeof e!=`string`)throw TypeError(`Expected String`);if(e.length===0)return new Uint8Array;let a=0,o=0,s=0;for(;e[a]===r;)o++,a++;let c=(e.length-a)*i+1>>>0,l=new Uint8Array(c);for(;a<e.length;){let r=e.charCodeAt(a);if(r>255)return;let i=t[r];if(i===255)return;let o=0;for(let e=c-1;(i!==0||o<s)&&e!==-1;e--,o++)i+=n*l[e]>>>0,l[e]=i%256>>>0,i=i/256>>>0;if(i!==0)throw Error(`Non-zero carry`);s=o,a++}let u=c-s;for(;u!==c&&l[u]===0;)u++;let d=new Uint8Array(o+(c-u)),f=o;for(;u!==c;)d[f++]=l[u++];return d}function c(e){let t=s(e);if(t)return t;throw Error(`Non-base`+n+` character`)}return{encode:o,decodeUnsafe:s,decode:c}}var Fs=Ps(`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`);function Is(e=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e)}function Ls(e,t){t||=e.reduce((e,t)=>e+t.length,0);let n=Is(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function Rs(e,t){if(e.length>=255)throw TypeError(`Alphabet too long`);for(var n=new Uint8Array(256),r=0;r<n.length;r++)n[r]=255;for(var i=0;i<e.length;i++){var a=e.charAt(i),o=a.charCodeAt(0);if(n[o]!==255)throw TypeError(a+` is ambiguous`);n[o]=i}var s=e.length,c=e.charAt(0),l=Math.log(s)/Math.log(256),u=Math.log(256)/Math.log(s);function d(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw TypeError(`Expected Uint8Array`);if(t.length===0)return``;for(var n=0,r=0,i=0,a=t.length;i!==a&&t[i]===0;)i++,n++;for(var o=(a-i)*u+1>>>0,l=new Uint8Array(o);i!==a;){for(var d=t[i],f=0,p=o-1;(d!==0||f<r)&&p!==-1;p--,f++)d+=256*l[p]>>>0,l[p]=d%s>>>0,d=d/s>>>0;if(d!==0)throw Error(`Non-zero carry`);r=f,i++}for(var m=o-r;m!==o&&l[m]===0;)m++;for(var h=c.repeat(n);m<o;++m)h+=e.charAt(l[m]);return h}function f(e){if(typeof e!=`string`)throw TypeError(`Expected String`);if(e.length===0)return new Uint8Array;var t=0;if(e[t]!==` `){for(var r=0,i=0;e[t]===c;)r++,t++;for(var a=(e.length-t)*l+1>>>0,o=new Uint8Array(a);e[t];){var u=n[e.charCodeAt(t)];if(u===255)return;for(var d=0,f=a-1;(u!==0||d<i)&&f!==-1;f--,d++)u+=s*o[f]>>>0,o[f]=u%256>>>0,u=u/256>>>0;if(u!==0)throw Error(`Non-zero carry`);i=d,t++}if(e[t]!==` `){for(var p=a-i;p!==a&&o[p]===0;)p++;for(var m=new Uint8Array(r+(a-p)),h=r;p!==a;)m[h++]=o[p++];return m}}}function p(e){var n=f(e);if(n)return n;throw Error(`Non-${t} character`)}return{encode:d,decodeUnsafe:f,decode:p}}var zs=Rs,Bs=e=>{if(e instanceof Uint8Array&&e.constructor.name===`Uint8Array`)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw Error(`Unknown type, must be binary type`)},Vs=e=>new TextEncoder().encode(e),Hs=e=>new TextDecoder().decode(e),Us=class{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error(`Unknown type, must be binary type`)}},Ws=class{constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw Error(`Invalid prefix character`);this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}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 Ks(this,e)}},Gs=class{constructor(e){this.decoders=e}or(e){return Ks(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Ks=(e,t)=>new Gs({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),qs=class{constructor(e,t,n,r){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=r,this.encoder=new Us(e,t,n),this.decoder=new Ws(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Js=({name:e,prefix:t,encode:n,decode:r})=>new qs(e,t,n,r),Ys=({prefix:e,name:t,alphabet:n})=>{let{encode:r,decode:i}=zs(n,t);return Js({prefix:e,name:t,encode:r,decode:e=>Bs(i(e))})},Xs=(e,t,n,r)=>{let i={};for(let e=0;e<t.length;++e)i[t[e]]=e;let a=e.length;for(;e[a-1]===`=`;)--a;let o=new Uint8Array(a*n/8|0),s=0,c=0,l=0;for(let t=0;t<a;++t){let a=i[e[t]];if(a===void 0)throw SyntaxError(`Non-${r} character`);c=c<<n|a,s+=n,s>=8&&(s-=8,o[l++]=255&c>>s)}if(s>=n||255&c<<8-s)throw SyntaxError(`Unexpected end of data`);return o},Zs=(e,t,n)=>{let r=t[t.length-1]===`=`,i=(1<<n)-1,a=``,o=0,s=0;for(let r=0;r<e.length;++r)for(s=s<<8|e[r],o+=8;o>n;)o-=n,a+=t[i&s>>o];if(o&&(a+=t[i&s<<n-o]),r)for(;a.length*n&7;)a+=`=`;return a},Qs=({name:e,prefix:t,bitsPerChar:n,alphabet:r})=>Js({prefix:t,name:e,encode(e){return Zs(e,r,n)},decode(t){return Xs(t,r,n,e)}}),$s=r({identity:()=>ec}),ec=Js({prefix:`\0`,name:`identity`,encode:e=>Hs(e),decode:e=>Vs(e)}),tc=r({base2:()=>nc}),nc=Qs({prefix:`0`,name:`base2`,alphabet:`01`,bitsPerChar:1}),rc=r({base8:()=>ic}),ic=Qs({prefix:`7`,name:`base8`,alphabet:`01234567`,bitsPerChar:3}),ac=r({base10:()=>oc}),oc=Ys({prefix:`9`,name:`base10`,alphabet:`0123456789`}),sc=r({base16:()=>cc,base16upper:()=>lc}),cc=Qs({prefix:`f`,name:`base16`,alphabet:`0123456789abcdef`,bitsPerChar:4}),lc=Qs({prefix:`F`,name:`base16upper`,alphabet:`0123456789ABCDEF`,bitsPerChar:4}),uc=r({base32:()=>dc,base32hex:()=>hc,base32hexpad:()=>_c,base32hexpadupper:()=>vc,base32hexupper:()=>gc,base32pad:()=>pc,base32padupper:()=>mc,base32upper:()=>fc,base32z:()=>yc}),dc=Qs({prefix:`b`,name:`base32`,alphabet:`abcdefghijklmnopqrstuvwxyz234567`,bitsPerChar:5}),fc=Qs({prefix:`B`,name:`base32upper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`,bitsPerChar:5}),pc=Qs({prefix:`c`,name:`base32pad`,alphabet:`abcdefghijklmnopqrstuvwxyz234567=`,bitsPerChar:5}),mc=Qs({prefix:`C`,name:`base32padupper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=`,bitsPerChar:5}),hc=Qs({prefix:`v`,name:`base32hex`,alphabet:`0123456789abcdefghijklmnopqrstuv`,bitsPerChar:5}),gc=Qs({prefix:`V`,name:`base32hexupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV`,bitsPerChar:5}),_c=Qs({prefix:`t`,name:`base32hexpad`,alphabet:`0123456789abcdefghijklmnopqrstuv=`,bitsPerChar:5}),vc=Qs({prefix:`T`,name:`base32hexpadupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV=`,bitsPerChar:5}),yc=Qs({prefix:`h`,name:`base32z`,alphabet:`ybndrfg8ejkmcpqxot1uwisza345h769`,bitsPerChar:5}),bc=r({base36:()=>xc,base36upper:()=>Sc}),xc=Ys({prefix:`k`,name:`base36`,alphabet:`0123456789abcdefghijklmnopqrstuvwxyz`}),Sc=Ys({prefix:`K`,name:`base36upper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ`}),Cc=r({base58btc:()=>wc,base58flickr:()=>Tc}),wc=Ys({name:`base58btc`,prefix:`z`,alphabet:`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`}),Tc=Ys({name:`base58flickr`,prefix:`Z`,alphabet:`123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ`}),Ec=r({base64:()=>Dc,base64pad:()=>Oc,base64url:()=>kc,base64urlpad:()=>Ac}),Dc=Qs({prefix:`m`,name:`base64`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,bitsPerChar:6}),Oc=Qs({prefix:`M`,name:`base64pad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`,bitsPerChar:6}),kc=Qs({prefix:`u`,name:`base64url`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,bitsPerChar:6}),Ac=Qs({prefix:`U`,name:`base64urlpad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=`,bitsPerChar:6}),jc=r({base256emoji:()=>Lc}),Mc=Array.from(`🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂`),Nc=Mc.reduce((e,t,n)=>(e[n]=t,e),[]),Pc=Mc.reduce((e,t,n)=>(e[t.codePointAt(0)]=n,e),[]);function Fc(e){return e.reduce((e,t)=>(e+=Nc[t],e),``)}function Ic(e){let t=[];for(let n of e){let e=Pc[n.codePointAt(0)];if(e===void 0)throw Error(`Non-base256emoji character: ${n}`);t.push(e)}return new Uint8Array(t)}var Lc=Js({prefix:`🚀`,name:`base256emoji`,encode:Fc,decode:Ic}),Rc=Hc,zc=128,Bc=-128,Vc=2**31;function Hc(e,t,n){t||=[],n||=0;for(var r=n;e>=Vc;)t[n++]=e&255|zc,e/=128;for(;e&Bc;)t[n++]=e&255|zc,e>>>=7;return t[n]=e|0,Hc.bytes=n-r+1,t}var Uc=Kc,Wc=128,Gc=127;function Kc(e,t){var n=0,t=t||0,r=0,i=t,a,o=e.length;do{if(i>=o)throw Kc.bytes=0,RangeError(`Could not decode varint`);a=e[i++],n+=r<28?(a&Gc)<<r:(a&Gc)*2**r,r+=7}while(a>=Wc);return Kc.bytes=i-t,n}var qc=2**7,Jc=2**14,Yc=2**21,Xc=2**28,Zc=2**35,Qc=2**42,$c=2**49,el=2**56,tl=2**63,nl={encode:Rc,decode:Uc,encodingLength:function(e){return e<qc?1:e<Jc?2:e<Yc?3:e<Xc?4:e<Zc?5:e<Qc?6:e<$c?7:e<el?8:e<tl?9:10}},rl=(e,t,n=0)=>(nl.encode(e,t,n),t),il=e=>nl.encodingLength(e),al=(e,t)=>{let n=t.byteLength,r=il(e),i=r+il(n),a=new Uint8Array(i+n);return rl(e,a,0),rl(n,a,r),a.set(t,i),new ol(e,n,t,a)},ol=class{constructor(e,t,n,r){this.code=e,this.size=t,this.digest=n,this.bytes=r}},sl=({name:e,code:t,encode:n})=>new cl(e,t,n),cl=class{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?al(this.code,t):t.then(e=>al(this.code,e))}else throw Error(`Unknown type, must be binary type`)}},ll=r({sha256:()=>dl,sha512:()=>fl}),ul=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),dl=sl({name:`sha2-256`,code:18,encode:ul(`SHA-256`)}),fl=sl({name:`sha2-512`,code:19,encode:ul(`SHA-512`)}),pl=r({identity:()=>_l}),ml=0,hl=`identity`,gl=Bs,_l={code:ml,name:hl,encode:gl,digest:e=>al(ml,gl(e))};new TextEncoder,new TextDecoder;var vl={...$s,...tc,...rc,...ac,...sc,...uc,...bc,...Cc,...Ec,...jc};({...ll,...pl});function yl(e,t,n,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:n},decoder:{decode:r}}}var bl=yl(`utf8`,`u`,e=>`u`+new TextDecoder(`utf8`).decode(e),e=>new TextEncoder().encode(e.substring(1))),xl=yl(`ascii`,`a`,e=>{let t=`a`;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t},e=>{e=e.substring(1);let t=Is(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}),Sl={utf8:bl,"utf-8":bl,hex:vl.base16,latin1:xl,ascii:xl,binary:xl,...vl};function Cl(e,t=`utf8`){let n=Sl[t];if(!n)throw Error(`Unsupported encoding "${t}"`);return(t===`utf8`||t===`utf-8`)&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e,`utf8`):n.decoder.decode(`${n.prefix}${e}`)}function wl(e,t=`utf8`){let n=Sl[t];if(!n)throw Error(`Unsupported encoding "${t}"`);return(t===`utf8`||t===`utf-8`)&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString(`utf8`):n.encoder.encode(e).substring(1)}var Tl=r({author:()=>Pl,bugs:()=>Fl,default:()=>zl,dependencies:()=>Rl,description:()=>Ol,devDependencies:()=>Ll,files:()=>Al,homepage:()=>Il,keywords:()=>Nl,license:()=>`MIT`,main:()=>kl,name:()=>El,repository:()=>Ml,scripts:()=>jl,version:()=>Dl}),El,Dl,Ol,kl,Al,jl,Ml,Nl,Pl,Fl,Il,Ll,Rl,zl,Bl=t((()=>{El=`elliptic`,Dl=`6.6.1`,Ol=`EC cryptography`,kl=`lib/elliptic.js`,Al=[`lib`],jl={lint:`eslint lib test`,"lint:fix":`npm run lint -- --fix`,unit:`istanbul test _mocha --reporter=spec test/index.js`,test:`npm run lint && npm run unit`,version:`grunt dist && git add dist/`},Ml={type:`git`,url:`git@github.com:indutny/elliptic`},Nl=[`EC`,`Elliptic`,`curve`,`Cryptography`],Pl=`Fedor Indutny <fedor@indutny.com>`,Fl={url:`https://github.com/indutny/elliptic/issues`},Il=`https://github.com/indutny/elliptic`,Ll={brfs:`^2.0.2`,coveralls:`^3.1.0`,eslint:`^7.6.0`,grunt:`^1.2.1`,"grunt-browserify":`^5.3.0`,"grunt-cli":`^1.3.2`,"grunt-contrib-connect":`^3.0.0`,"grunt-contrib-copy":`^1.0.0`,"grunt-contrib-uglify":`^5.0.0`,"grunt-mocha-istanbul":`^5.0.2`,"grunt-saucelabs":`^9.0.1`,istanbul:`^0.4.5`,mocha:`^8.0.1`},Rl={"bn.js":`^4.11.9`,brorand:`^1.1.0`,"hash.js":`^1.0.0`,"hmac-drbg":`^1.0.1`,inherits:`^2.0.4`,"minimalistic-assert":`^1.0.1`,"minimalistic-crypto-utils":`^1.0.1`},zl={name:El,version:Dl,description:Ol,main:kl,files:Al,scripts:jl,repository:Ml,keywords:Nl,author:Pl,license:`MIT`,bugs:Fl,homepage:Il,devDependencies:Ll,dependencies:Rl}})),Vl=i(((e,t)=>{(function(e,t){function n(e,t){if(!e)throw Error(t||`Assertion failed`)}function r(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function i(e,t,n){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,e!==null&&((t===`le`||t===`be`)&&(n=t,t=10),this._init(e||0,t||10,n||`be`))}typeof e==`object`?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;var a;try{a=typeof window<`u`&&window.Buffer!==void 0?window.Buffer:l().Buffer}catch{}i.isBN=function(e){return e instanceof i?!0:typeof e==`object`&&!!e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if(typeof e==`number`)return this._initNumber(e,t,r);if(typeof e==`object`)return this._initArray(e,t,r);t===`hex`&&(t=16),n(t===(t|0)&&t>=2&&t<=36),e=e.toString().replace(/\s+/g,``);var i=0;e[0]===`-`&&(i++,this.negative=1),i<e.length&&(t===16?this._parseHex(e,i,r):(this._parseBase(e,t,i),r===`le`&&this._initArray(this.toArray(),t,r)))},i.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[e&67108863],this.length=1):e<4503599627370496?(this.words=[e&67108863,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[e&67108863,e/67108864&67108863,1],this.length=3),r===`le`&&this._initArray(this.toArray(),t,r)},i.prototype._initArray=function(e,t,r){if(n(typeof e.length==`number`),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var a,o,s=0;if(r===`be`)for(i=e.length-1,a=0;i>=0;i-=3)o=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,s+=24,s>=26&&(s-=26,a++);else if(r===`le`)for(i=0,a=0;i<e.length;i+=3)o=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,s+=24,s>=26&&(s-=26,a++);return this.strip()};function o(e,t){var n=e.charCodeAt(t);return n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function s(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i=0,a=0,o;if(n===`be`)for(r=e.length-1;r>=t;r-=2)o=s(e,t,r)<<i,this.words[a]|=o&67108863,i>=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(r=(e.length-t)%2==0?t+1:t;r<e.length;r+=2)o=s(e,t,r)<<i,this.words[a]|=o&67108863,i>=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()};function c(e,t,n,r){for(var i=0,a=Math.min(e.length,n),o=t;o<a;o++){var s=e.charCodeAt(o)-48;i*=r,s>=49?i+=s-49+10:s>=17?i+=s-17+10:i+=s}return i}i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,o=a%r,s=Math.min(a,a-o)+n,l=0,u=n;u<s;u+=r)l=c(e,u,u+r,t),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(o!==0){var d=1;for(l=c(e,u,e.length,t),u=0;u<o;u++)d*=t;this.imuln(d),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this.strip()},i.prototype.copy=function(e){e.words=Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},i.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?`<BN-R: `:`<BN: `)+this.toString(16)+`>`};var u=`.0.00.000.0000.00000.000000.0000000.00000000.000000000.0000000000.00000000000.000000000000.0000000000000.00000000000000.000000000000000.0000000000000000.00000000000000000.000000000000000000.0000000000000000000.00000000000000000000.000000000000000000000.0000000000000000000000.00000000000000000000000.000000000000000000000000.0000000000000000000000000`.split(`.`),d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(e,t){e||=10,t=t|0||1;var r;if(e===16||e===`hex`){r=``;for(var i=0,a=0,o=0;o<this.length;o++){var s=this.words[o],c=((s<<i|a)&16777215).toString(16);a=s>>>24-i&16777215,i+=2,i>=26&&(i-=26,o--),r=a!==0||o!==this.length-1?u[6-c.length]+c+r:c+r}for(a!==0&&(r=a.toString(16)+r);r.length%t!==0;)r=`0`+r;return this.negative!==0&&(r=`-`+r),r}if(e===(e|0)&&e>=2&&e<=36){var l=d[e],p=f[e];r=``;var m=this.clone();for(m.negative=0;!m.isZero();){var h=m.modn(p).toString(e);m=m.idivn(p),r=m.isZero()?h+r:u[l-h.length]+h+r}for(this.isZero()&&(r=`0`+r);r.length%t!==0;)r=`0`+r;return this.negative!==0&&(r=`-`+r),r}n(!1,`Base should be between 2 and 36`)},i.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&n(!1,`Number can only safely store up to 53 bits`),this.negative===0?e:-e},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(e,t){return n(a!==void 0),this.toArrayLike(a,e,t)},i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,r){var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,`byte array longer than desired length`),n(a>0,`Requested array length <= 0`),this.strip();var o=t===`le`,s=new e(a),c,l,u=this.clone();if(o){for(l=0;!u.isZero();l++)c=u.andln(255),u.iushrn(8),s[l]=c;for(;l<a;l++)s[l]=0}else{for(l=0;l<a-i;l++)s[l]=0;for(l=0;!u.isZero();l++)c=u.andln(255),u.iushrn(8),s[a-l-1]=c}return s},Math.clz32?i.prototype._countBits=function(e){return 32-Math.clz32(e)}:i.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(e===0)return 26;var t=e,n=0;return t&8191||(n+=13,t>>>=13),t&127||(n+=7,t>>>=7),t&15||(n+=4,t>>>=4),t&3||(n+=2,t>>>=2),t&1||n++,n},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return(this.length-1)*26+t};function p(e){for(var t=Array(e.bitLength()),n=0;n<t.length;n++){var r=n/26|0,i=n%26;t[n]=(e.words[r]&1<<i)>>>i}return t}i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,n!==26)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return this.negative===0?this.clone():this.abs().inotn(e).iaddn(1)},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return this.negative!==0},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this.strip()},i.prototype.ior=function(e){return n((this.negative|e.negative)===0),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){for(var t=this.length>e.length?e:this,n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this.strip()},i.prototype.iand=function(e){return n((this.negative|e.negative)===0),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this.strip()},i.prototype.ixor=function(e){return n((this.negative|e.negative)===0),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n(typeof e==`number`&&e>=0);var t=Math.ceil(e/26)|0,r=e%26;this._expand(t),r>0&&t--;for(var i=0;i<t;i++)this.words[i]=~this.words[i]&67108863;return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n(typeof e==`number`&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),t?this.words[r]=this.words[r]|1<<i:this.words[r]=this.words[r]&~(1<<i),this.strip()},i.prototype.iadd=function(e){var t;if(this.negative!==0&&e.negative===0)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(this.negative===0&&e.negative!==0)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();var n,r;this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a<r.length;a++)t=(n.words[a]|0)+(r.words[a]|0)+i,this.words[a]=t&67108863,i=t>>>26;for(;i!==0&&a<n.length;a++)t=(n.words[a]|0)+i,this.words[a]=t&67108863,i=t>>>26;if(this.length=n.length,i!==0)this.words[this.length]=i,this.length++;else if(n!==this)for(;a<n.length;a++)this.words[a]=n.words[a];return this},i.prototype.add=function(e){var t;return e.negative!==0&&this.negative===0?(e.negative=0,t=this.sub(e),e.negative^=1,t):e.negative===0&&this.negative!==0?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var r,i;n>0?(r=this,i=e):(r=e,i=this);for(var a=0,o=0;o<i.length;o++)t=(r.words[o]|0)-(i.words[o]|0)+a,a=t>>26,this.words[o]=t&67108863;for(;a!==0&&o<r.length;o++)t=(r.words[o]|0)+a,a=t>>26,this.words[o]=t&67108863;if(a===0&&o<r.length&&r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this.length=Math.max(this.length,o),r!==this&&(this.negative=1),this.strip()},i.prototype.sub=function(e){return this.clone().isub(e)};function m(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=e.words[0]|0,a=t.words[0]|0,o=i*a,s=o&67108863,c=o/67108864|0;n.words[0]=s;for(var l=1;l<r;l++){for(var u=c>>>26,d=c&67108863,f=Math.min(l,t.length-1),p=Math.max(0,l-e.length+1);p<=f;p++){var m=l-p|0;i=e.words[m]|0,a=t.words[p]|0,o=i*a+d,u+=o/67108864|0,d=o&67108863}n.words[l]=d|0,c=u|0}return c===0?n.length--:n.words[l]=c|0,n.strip()}var h=function(e,t,n){var r=e.words,i=t.words,a=n.words,o=0,s,c,l,u=r[0]|0,d=u&8191,f=u>>>13,p=r[1]|0,m=p&8191,h=p>>>13,g=r[2]|0,_=g&8191,v=g>>>13,y=r[3]|0,b=y&8191,x=y>>>13,S=r[4]|0,C=S&8191,w=S>>>13,T=r[5]|0,E=T&8191,D=T>>>13,O=r[6]|0,k=O&8191,A=O>>>13,j=r[7]|0,M=j&8191,N=j>>>13,P=r[8]|0,F=P&8191,I=P>>>13,L=r[9]|0,R=L&8191,z=L>>>13,B=i[0]|0,V=B&8191,H=B>>>13,ee=i[1]|0,U=ee&8191,W=ee>>>13,te=i[2]|0,ne=te&8191,re=te>>>13,ie=i[3]|0,G=ie&8191,ae=ie>>>13,oe=i[4]|0,se=oe&8191,ce=oe>>>13,le=i[5]|0,ue=le&8191,de=le>>>13,fe=i[6]|0,pe=fe&8191,K=fe>>>13,me=i[7]|0,he=me&8191,ge=me>>>13,_e=i[8]|0,ve=_e&8191,ye=_e>>>13,be=i[9]|0,xe=be&8191,Se=be>>>13;n.negative=e.negative^t.negative,n.length=19,s=Math.imul(d,V),c=Math.imul(d,H),c=c+Math.imul(f,V)|0,l=Math.imul(f,H);var Ce=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,s=Math.imul(m,V),c=Math.imul(m,H),c=c+Math.imul(h,V)|0,l=Math.imul(h,H),s=s+Math.imul(d,U)|0,c=c+Math.imul(d,W)|0,c=c+Math.imul(f,U)|0,l=l+Math.imul(f,W)|0;var we=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(we>>>26)|0,we&=67108863,s=Math.imul(_,V),c=Math.imul(_,H),c=c+Math.imul(v,V)|0,l=Math.imul(v,H),s=s+Math.imul(m,U)|0,c=c+Math.imul(m,W)|0,c=c+Math.imul(h,U)|0,l=l+Math.imul(h,W)|0,s=s+Math.imul(d,ne)|0,c=c+Math.imul(d,re)|0,c=c+Math.imul(f,ne)|0,l=l+Math.imul(f,re)|0;var Te=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(Te>>>26)|0,Te&=67108863,s=Math.imul(b,V),c=Math.imul(b,H),c=c+Math.imul(x,V)|0,l=Math.imul(x,H),s=s+Math.imul(_,U)|0,c=c+Math.imul(_,W)|0,c=c+Math.imul(v,U)|0,l=l+Math.imul(v,W)|0,s=s+Math.imul(m,ne)|0,c=c+Math.imul(m,re)|0,c=c+Math.imul(h,ne)|0,l=l+Math.imul(h,re)|0,s=s+Math.imul(d,G)|0,c=c+Math.imul(d,ae)|0,c=c+Math.imul(f,G)|0,l=l+Math.imul(f,ae)|0;var Ee=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,s=Math.imul(C,V),c=Math.imul(C,H),c=c+Math.imul(w,V)|0,l=Math.imul(w,H),s=s+Math.imul(b,U)|0,c=c+Math.imul(b,W)|0,c=c+Math.imul(x,U)|0,l=l+Math.imul(x,W)|0,s=s+Math.imul(_,ne)|0,c=c+Math.imul(_,re)|0,c=c+Math.imul(v,ne)|0,l=l+Math.imul(v,re)|0,s=s+Math.imul(m,G)|0,c=c+Math.imul(m,ae)|0,c=c+Math.imul(h,G)|0,l=l+Math.imul(h,ae)|0,s=s+Math.imul(d,se)|0,c=c+Math.imul(d,ce)|0,c=c+Math.imul(f,se)|0,l=l+Math.imul(f,ce)|0;var De=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(De>>>26)|0,De&=67108863,s=Math.imul(E,V),c=Math.imul(E,H),c=c+Math.imul(D,V)|0,l=Math.imul(D,H),s=s+Math.imul(C,U)|0,c=c+Math.imul(C,W)|0,c=c+Math.imul(w,U)|0,l=l+Math.imul(w,W)|0,s=s+Math.imul(b,ne)|0,c=c+Math.imul(b,re)|0,c=c+Math.imul(x,ne)|0,l=l+Math.imul(x,re)|0,s=s+Math.imul(_,G)|0,c=c+Math.imul(_,ae)|0,c=c+Math.imul(v,G)|0,l=l+Math.imul(v,ae)|0,s=s+Math.imul(m,se)|0,c=c+Math.imul(m,ce)|0,c=c+Math.imul(h,se)|0,l=l+Math.imul(h,ce)|0,s=s+Math.imul(d,ue)|0,c=c+Math.imul(d,de)|0,c=c+Math.imul(f,ue)|0,l=l+Math.imul(f,de)|0;var Oe=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,s=Math.imul(k,V),c=Math.imul(k,H),c=c+Math.imul(A,V)|0,l=Math.imul(A,H),s=s+Math.imul(E,U)|0,c=c+Math.imul(E,W)|0,c=c+Math.imul(D,U)|0,l=l+Math.imul(D,W)|0,s=s+Math.imul(C,ne)|0,c=c+Math.imul(C,re)|0,c=c+Math.imul(w,ne)|0,l=l+Math.imul(w,re)|0,s=s+Math.imul(b,G)|0,c=c+Math.imul(b,ae)|0,c=c+Math.imul(x,G)|0,l=l+Math.imul(x,ae)|0,s=s+Math.imul(_,se)|0,c=c+Math.imul(_,ce)|0,c=c+Math.imul(v,se)|0,l=l+Math.imul(v,ce)|0,s=s+Math.imul(m,ue)|0,c=c+Math.imul(m,de)|0,c=c+Math.imul(h,ue)|0,l=l+Math.imul(h,de)|0,s=s+Math.imul(d,pe)|0,c=c+Math.imul(d,K)|0,c=c+Math.imul(f,pe)|0,l=l+Math.imul(f,K)|0;var ke=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(ke>>>26)|0,ke&=67108863,s=Math.imul(M,V),c=Math.imul(M,H),c=c+Math.imul(N,V)|0,l=Math.imul(N,H),s=s+Math.imul(k,U)|0,c=c+Math.imul(k,W)|0,c=c+Math.imul(A,U)|0,l=l+Math.imul(A,W)|0,s=s+Math.imul(E,ne)|0,c=c+Math.imul(E,re)|0,c=c+Math.imul(D,ne)|0,l=l+Math.imul(D,re)|0,s=s+Math.imul(C,G)|0,c=c+Math.imul(C,ae)|0,c=c+Math.imul(w,G)|0,l=l+Math.imul(w,ae)|0,s=s+Math.imul(b,se)|0,c=c+Math.imul(b,ce)|0,c=c+Math.imul(x,se)|0,l=l+Math.imul(x,ce)|0,s=s+Math.imul(_,ue)|0,c=c+Math.imul(_,de)|0,c=c+Math.imul(v,ue)|0,l=l+Math.imul(v,de)|0,s=s+Math.imul(m,pe)|0,c=c+Math.imul(m,K)|0,c=c+Math.imul(h,pe)|0,l=l+Math.imul(h,K)|0,s=s+Math.imul(d,he)|0,c=c+Math.imul(d,ge)|0,c=c+Math.imul(f,he)|0,l=l+Math.imul(f,ge)|0;var Ae=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,s=Math.imul(F,V),c=Math.imul(F,H),c=c+Math.imul(I,V)|0,l=Math.imul(I,H),s=s+Math.imul(M,U)|0,c=c+Math.imul(M,W)|0,c=c+Math.imul(N,U)|0,l=l+Math.imul(N,W)|0,s=s+Math.imul(k,ne)|0,c=c+Math.imul(k,re)|0,c=c+Math.imul(A,ne)|0,l=l+Math.imul(A,re)|0,s=s+Math.imul(E,G)|0,c=c+Math.imul(E,ae)|0,c=c+Math.imul(D,G)|0,l=l+Math.imul(D,ae)|0,s=s+Math.imul(C,se)|0,c=c+Math.imul(C,ce)|0,c=c+Math.imul(w,se)|0,l=l+Math.imul(w,ce)|0,s=s+Math.imul(b,ue)|0,c=c+Math.imul(b,de)|0,c=c+Math.imul(x,ue)|0,l=l+Math.imul(x,de)|0,s=s+Math.imul(_,pe)|0,c=c+Math.imul(_,K)|0,c=c+Math.imul(v,pe)|0,l=l+Math.imul(v,K)|0,s=s+Math.imul(m,he)|0,c=c+Math.imul(m,ge)|0,c=c+Math.imul(h,he)|0,l=l+Math.imul(h,ge)|0,s=s+Math.imul(d,ve)|0,c=c+Math.imul(d,ye)|0,c=c+Math.imul(f,ve)|0,l=l+Math.imul(f,ye)|0;var je=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(je>>>26)|0,je&=67108863,s=Math.imul(R,V),c=Math.imul(R,H),c=c+Math.imul(z,V)|0,l=Math.imul(z,H),s=s+Math.imul(F,U)|0,c=c+Math.imul(F,W)|0,c=c+Math.imul(I,U)|0,l=l+Math.imul(I,W)|0,s=s+Math.imul(M,ne)|0,c=c+Math.imul(M,re)|0,c=c+Math.imul(N,ne)|0,l=l+Math.imul(N,re)|0,s=s+Math.imul(k,G)|0,c=c+Math.imul(k,ae)|0,c=c+Math.imul(A,G)|0,l=l+Math.imul(A,ae)|0,s=s+Math.imul(E,se)|0,c=c+Math.imul(E,ce)|0,c=c+Math.imul(D,se)|0,l=l+Math.imul(D,ce)|0,s=s+Math.imul(C,ue)|0,c=c+Math.imul(C,de)|0,c=c+Math.imul(w,ue)|0,l=l+Math.imul(w,de)|0,s=s+Math.imul(b,pe)|0,c=c+Math.imul(b,K)|0,c=c+Math.imul(x,pe)|0,l=l+Math.imul(x,K)|0,s=s+Math.imul(_,he)|0,c=c+Math.imul(_,ge)|0,c=c+Math.imul(v,he)|0,l=l+Math.imul(v,ge)|0,s=s+Math.imul(m,ve)|0,c=c+Math.imul(m,ye)|0,c=c+Math.imul(h,ve)|0,l=l+Math.imul(h,ye)|0,s=s+Math.imul(d,xe)|0,c=c+Math.imul(d,Se)|0,c=c+Math.imul(f,xe)|0,l=l+Math.imul(f,Se)|0;var Me=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(Me>>>26)|0,Me&=67108863,s=Math.imul(R,U),c=Math.imul(R,W),c=c+Math.imul(z,U)|0,l=Math.imul(z,W),s=s+Math.imul(F,ne)|0,c=c+Math.imul(F,re)|0,c=c+Math.imul(I,ne)|0,l=l+Math.imul(I,re)|0,s=s+Math.imul(M,G)|0,c=c+Math.imul(M,ae)|0,c=c+Math.imul(N,G)|0,l=l+Math.imul(N,ae)|0,s=s+Math.imul(k,se)|0,c=c+Math.imul(k,ce)|0,c=c+Math.imul(A,se)|0,l=l+Math.imul(A,ce)|0,s=s+Math.imul(E,ue)|0,c=c+Math.imul(E,de)|0,c=c+Math.imul(D,ue)|0,l=l+Math.imul(D,de)|0,s=s+Math.imul(C,pe)|0,c=c+Math.imul(C,K)|0,c=c+Math.imul(w,pe)|0,l=l+Math.imul(w,K)|0,s=s+Math.imul(b,he)|0,c=c+Math.imul(b,ge)|0,c=c+Math.imul(x,he)|0,l=l+Math.imul(x,ge)|0,s=s+Math.imul(_,ve)|0,c=c+Math.imul(_,ye)|0,c=c+Math.imul(v,ve)|0,l=l+Math.imul(v,ye)|0,s=s+Math.imul(m,xe)|0,c=c+Math.imul(m,Se)|0,c=c+Math.imul(h,xe)|0,l=l+Math.imul(h,Se)|0;var Ne=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,s=Math.imul(R,ne),c=Math.imul(R,re),c=c+Math.imul(z,ne)|0,l=Math.imul(z,re),s=s+Math.imul(F,G)|0,c=c+Math.imul(F,ae)|0,c=c+Math.imul(I,G)|0,l=l+Math.imul(I,ae)|0,s=s+Math.imul(M,se)|0,c=c+Math.imul(M,ce)|0,c=c+Math.imul(N,se)|0,l=l+Math.imul(N,ce)|0,s=s+Math.imul(k,ue)|0,c=c+Math.imul(k,de)|0,c=c+Math.imul(A,ue)|0,l=l+Math.imul(A,de)|0,s=s+Math.imul(E,pe)|0,c=c+Math.imul(E,K)|0,c=c+Math.imul(D,pe)|0,l=l+Math.imul(D,K)|0,s=s+Math.imul(C,he)|0,c=c+Math.imul(C,ge)|0,c=c+Math.imul(w,he)|0,l=l+Math.imul(w,ge)|0,s=s+Math.imul(b,ve)|0,c=c+Math.imul(b,ye)|0,c=c+Math.imul(x,ve)|0,l=l+Math.imul(x,ye)|0,s=s+Math.imul(_,xe)|0,c=c+Math.imul(_,Se)|0,c=c+Math.imul(v,xe)|0,l=l+Math.imul(v,Se)|0;var Pe=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,s=Math.imul(R,G),c=Math.imul(R,ae),c=c+Math.imul(z,G)|0,l=Math.imul(z,ae),s=s+Math.imul(F,se)|0,c=c+Math.imul(F,ce)|0,c=c+Math.imul(I,se)|0,l=l+Math.imul(I,ce)|0,s=s+Math.imul(M,ue)|0,c=c+Math.imul(M,de)|0,c=c+Math.imul(N,ue)|0,l=l+Math.imul(N,de)|0,s=s+Math.imul(k,pe)|0,c=c+Math.imul(k,K)|0,c=c+Math.imul(A,pe)|0,l=l+Math.imul(A,K)|0,s=s+Math.imul(E,he)|0,c=c+Math.imul(E,ge)|0,c=c+Math.imul(D,he)|0,l=l+Math.imul(D,ge)|0,s=s+Math.imul(C,ve)|0,c=c+Math.imul(C,ye)|0,c=c+Math.imul(w,ve)|0,l=l+Math.imul(w,ye)|0,s=s+Math.imul(b,xe)|0,c=c+Math.imul(b,Se)|0,c=c+Math.imul(x,xe)|0,l=l+Math.imul(x,Se)|0;var Fe=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(Fe>>>26)|0,Fe&=67108863,s=Math.imul(R,se),c=Math.imul(R,ce),c=c+Math.imul(z,se)|0,l=Math.imul(z,ce),s=s+Math.imul(F,ue)|0,c=c+Math.imul(F,de)|0,c=c+Math.imul(I,ue)|0,l=l+Math.imul(I,de)|0,s=s+Math.imul(M,pe)|0,c=c+Math.imul(M,K)|0,c=c+Math.imul(N,pe)|0,l=l+Math.imul(N,K)|0,s=s+Math.imul(k,he)|0,c=c+Math.imul(k,ge)|0,c=c+Math.imul(A,he)|0,l=l+Math.imul(A,ge)|0,s=s+Math.imul(E,ve)|0,c=c+Math.imul(E,ye)|0,c=c+Math.imul(D,ve)|0,l=l+Math.imul(D,ye)|0,s=s+Math.imul(C,xe)|0,c=c+Math.imul(C,Se)|0,c=c+Math.imul(w,xe)|0,l=l+Math.imul(w,Se)|0;var Ie=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,s=Math.imul(R,ue),c=Math.imul(R,de),c=c+Math.imul(z,ue)|0,l=Math.imul(z,de),s=s+Math.imul(F,pe)|0,c=c+Math.imul(F,K)|0,c=c+Math.imul(I,pe)|0,l=l+Math.imul(I,K)|0,s=s+Math.imul(M,he)|0,c=c+Math.imul(M,ge)|0,c=c+Math.imul(N,he)|0,l=l+Math.imul(N,ge)|0,s=s+Math.imul(k,ve)|0,c=c+Math.imul(k,ye)|0,c=c+Math.imul(A,ve)|0,l=l+Math.imul(A,ye)|0,s=s+Math.imul(E,xe)|0,c=c+Math.imul(E,Se)|0,c=c+Math.imul(D,xe)|0,l=l+Math.imul(D,Se)|0;var Le=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(Le>>>26)|0,Le&=67108863,s=Math.imul(R,pe),c=Math.imul(R,K),c=c+Math.imul(z,pe)|0,l=Math.imul(z,K),s=s+Math.imul(F,he)|0,c=c+Math.imul(F,ge)|0,c=c+Math.imul(I,he)|0,l=l+Math.imul(I,ge)|0,s=s+Math.imul(M,ve)|0,c=c+Math.imul(M,ye)|0,c=c+Math.imul(N,ve)|0,l=l+Math.imul(N,ye)|0,s=s+Math.imul(k,xe)|0,c=c+Math.imul(k,Se)|0,c=c+Math.imul(A,xe)|0,l=l+Math.imul(A,Se)|0;var Re=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(Re>>>26)|0,Re&=67108863,s=Math.imul(R,he),c=Math.imul(R,ge),c=c+Math.imul(z,he)|0,l=Math.imul(z,ge),s=s+Math.imul(F,ve)|0,c=c+Math.imul(F,ye)|0,c=c+Math.imul(I,ve)|0,l=l+Math.imul(I,ye)|0,s=s+Math.imul(M,xe)|0,c=c+Math.imul(M,Se)|0,c=c+Math.imul(N,xe)|0,l=l+Math.imul(N,Se)|0;var ze=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(ze>>>26)|0,ze&=67108863,s=Math.imul(R,ve),c=Math.imul(R,ye),c=c+Math.imul(z,ve)|0,l=Math.imul(z,ye),s=s+Math.imul(F,xe)|0,c=c+Math.imul(F,Se)|0,c=c+Math.imul(I,xe)|0,l=l+Math.imul(I,Se)|0;var Be=(o+s|0)+((c&8191)<<13)|0;o=(l+(c>>>13)|0)+(Be>>>26)|0,Be&=67108863,s=Math.imul(R,xe),c=Math.imul(R,Se),c=c+Math.imul(z,xe)|0,l=Math.imul(z,Se);var Ve=(o+s|0)+((c&8191)<<13)|0;return o=(l+(c>>>13)|0)+(Ve>>>26)|0,Ve&=67108863,a[0]=Ce,a[1]=we,a[2]=Te,a[3]=Ee,a[4]=De,a[5]=Oe,a[6]=ke,a[7]=Ae,a[8]=je,a[9]=Me,a[10]=Ne,a[11]=Pe,a[12]=Fe,a[13]=Ie,a[14]=Le,a[15]=Re,a[16]=ze,a[17]=Be,a[18]=Ve,o!==0&&(a[19]=o,n.length++),n};Math.imul||(h=m);function g(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a<n.length-1;a++){var o=i;i=0;for(var s=r&67108863,c=Math.min(a,t.length-1),l=Math.max(0,a-e.length+1);l<=c;l++){var u=a-l,d=(e.words[u]|0)*(t.words[l]|0),f=d&67108863;o=o+(d/67108864|0)|0,f=f+s|0,s=f&67108863,o=o+(f>>>26)|0,i+=o>>>26,o&=67108863}n.words[a]=s,r=o,o=i}return r===0?n.length--:n.words[a]=r,n.strip()}function _(e,t,n){return new v().mulp(e,t,n)}i.prototype.mulTo=function(e,t){var n,r=this.length+e.length;return n=this.length===10&&e.length===10?h(this,e,t):r<63?m(this,e,t):r<1024?g(this,e,t):_(this,e,t),n};function v(e,t){this.x=e,this.y=t}v.prototype.makeRBT=function(e){for(var t=Array(e),n=i.prototype._countBits(e)-1,r=0;r<e;r++)t[r]=this.revBin(r,n,e);return t},v.prototype.revBin=function(e,t,n){if(e===0||e===n-1)return e;for(var r=0,i=0;i<t;i++)r|=(e&1)<<t-i-1,e>>=1;return r},v.prototype.permute=function(e,t,n,r,i,a){for(var o=0;o<a;o++)r[o]=t[e[o]],i[o]=n[e[o]]},v.prototype.transform=function(e,t,n,r,i,a){this.permute(a,e,t,n,r,i);for(var o=1;o<i;o<<=1)for(var s=o<<1,c=Math.cos(2*Math.PI/s),l=Math.sin(2*Math.PI/s),u=0;u<i;u+=s)for(var d=c,f=l,p=0;p<o;p++){var m=n[u+p],h=r[u+p],g=n[u+p+o],_=r[u+p+o],v=d*g-f*_;_=d*_+f*g,g=v,n[u+p]=m+g,r[u+p]=h+_,n[u+p+o]=m-g,r[u+p+o]=h-_,p!==s&&(v=c*d-l*f,f=c*f+l*d,d=v)}},v.prototype.guessLen13b=function(e,t){var n=Math.max(t,e)|1,r=n&1,i=0;for(n=n/2|0;n;n>>>=1)i++;return 1<<i+1+r},v.prototype.conjugate=function(e,t,n){if(!(n<=1))for(var r=0;r<n/2;r++){var i=e[r];e[r]=e[n-r-1],e[n-r-1]=i,i=t[r],t[r]=-t[n-r-1],t[n-r-1]=-i}},v.prototype.normalize13b=function(e,t){for(var n=0,r=0;r<t/2;r++){var i=Math.round(e[2*r+1]/t)*8192+Math.round(e[2*r]/t)+n;e[r]=i&67108863,n=i<67108864?0:i/67108864|0}return e},v.prototype.convert13b=function(e,t,r,i){for(var a=0,o=0;o<t;o++)a+=e[o]|0,r[2*o]=a&8191,a>>>=13,r[2*o+1]=a&8191,a>>>=13;for(o=2*t;o<i;++o)r[o]=0;n(a===0),n((a&-8192)==0)},v.prototype.stub=function(e){for(var t=Array(e),n=0;n<e;n++)t[n]=0;return t},v.prototype.mulp=function(e,t,n){var r=2*this.guessLen13b(e.length,t.length),i=this.makeRBT(r),a=this.stub(r),o=Array(r),s=Array(r),c=Array(r),l=Array(r),u=Array(r),d=Array(r),f=n.words;f.length=r,this.convert13b(e.words,e.length,o,r),this.convert13b(t.words,t.length,l,r),this.transform(o,a,s,c,r,i),this.transform(l,a,u,d,r,i);for(var p=0;p<r;p++){var m=s[p]*u[p]-c[p]*d[p];c[p]=s[p]*d[p]+c[p]*u[p],s[p]=m}return this.conjugate(s,c,r),this.transform(s,c,f,a,r,i),this.conjugate(f,a,r),this.normalize13b(f,r),n.negative=e.negative^t.negative,n.length=e.length+t.length,n.strip()},i.prototype.mul=function(e){var t=new i(null);return t.words=Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=Array(this.length+e.length),_(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){n(typeof e==`number`),n(e<67108864);for(var t=0,r=0;r<this.length;r++){var i=(this.words[r]|0)*e,a=(i&67108863)+(t&67108863);t>>=26,t+=i/67108864|0,t+=a>>>26,this.words[r]=a&67108863}return t!==0&&(this.words[r]=t,this.length++),this.length=e===0?1:this.length,this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=p(e);if(t.length===0)return new i(1);for(var n=this,r=0;r<t.length&&t[r]===0;r++,n=n.sqr());if(++r<t.length)for(var a=n.sqr();r<t.length;r++,a=a.sqr())t[r]!==0&&(n=n.mul(a));return n},i.prototype.iushln=function(e){n(typeof e==`number`&&e>=0);var t=e%26,r=(e-t)/26,i=67108863>>>26-t<<26-t,a;if(t!==0){var o=0;for(a=0;a<this.length;a++){var s=this.words[a]&i,c=(this.words[a]|0)-s<<t;this.words[a]=c|o,o=s>>>26-t}o&&(this.words[a]=o,this.length++)}if(r!==0){for(a=this.length-1;a>=0;a--)this.words[a+r]=this.words[a];for(a=0;a<r;a++)this.words[a]=0;this.length+=r}return this.strip()},i.prototype.ishln=function(e){return n(this.negative===0),this.iushln(e)},i.prototype.iushrn=function(e,t,r){n(typeof e==`number`&&e>=0);var i=t?(t-t%26)/26:0,a=e%26,o=Math.min((e-a)/26,this.length),s=67108863^67108863>>>a<<a,c=r;if(i-=o,i=Math.max(0,i),c){for(var l=0;l<o;l++)c.words[l]=this.words[l];c.length=o}if(o!==0)if(this.length>o)for(this.length-=o,l=0;l<this.length;l++)this.words[l]=this.words[l+o];else this.words[0]=0,this.length=1;var u=0;for(l=this.length-1;l>=0&&(u!==0||l>=i);l--){var d=this.words[l]|0;this.words[l]=u<<26-a|d>>>a,u=d&s}return c&&u!==0&&(c.words[c.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(e,t,r){return n(this.negative===0),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n(typeof e==`number`&&e>=0);var t=e%26,r=(e-t)/26,i=1<<t;return this.length<=r?!1:!!(this.words[r]&i)},i.prototype.imaskn=function(e){n(typeof e==`number`&&e>=0);var t=e%26,r=(e-t)/26;if(n(this.negative===0,`imaskn works only with positive numbers`),this.length<=r)return this;if(t!==0&&r++,this.length=Math.min(r,this.length),t!==0){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this.length===0&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return n(typeof e==`number`),n(e<67108864),e<0?this.isubn(-e):this.negative===0?this._iaddn(e):this.length===1&&(this.words[0]|0)<e?(this.words[0]=e-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n(typeof e==`number`),n(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,--this.words[t+1];return this.strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,r){var i=e.length+r,a;this._expand(i);var o,s=0;for(a=0;a<e.length;a++){o=(this.words[a+r]|0)+s;var c=(e.words[a]|0)*t;o-=c&67108863,s=(o>>26)-(c/67108864|0),this.words[a+r]=o&67108863}for(;a<this.length-r;a++)o=(this.words[a+r]|0)+s,s=o>>26,this.words[a+r]=o&67108863;if(s===0)return this.strip();for(n(s===-1),s=0,a=0;a<this.length;a++)o=-(this.words[a]|0)+s,s=o>>26,this.words[a]=o&67108863;return this.negative=1,this.strip()},i.prototype._wordDiv=function(e,t){var n=this.length-e.length,r=this.clone(),a=e,o=a.words[a.length-1]|0;n=26-this._countBits(o),n!==0&&(a=a.ushln(n),r.iushln(n),o=a.words[a.length-1]|0);var s=r.length-a.length,c;if(t!==`mod`){c=new i(null),c.length=s+1,c.words=Array(c.length);for(var l=0;l<c.length;l++)c.words[l]=0}var u=r.clone()._ishlnsubmul(a,1,s);u.negative===0&&(r=u,c&&(c.words[s]=1));for(var d=s-1;d>=0;d--){var f=(r.words[a.length+d]|0)*67108864+(r.words[a.length+d-1]|0);for(f=Math.min(f/o|0,67108863),r._ishlnsubmul(a,f,d);r.negative!==0;)f--,r.negative=0,r._ishlnsubmul(a,1,d),r.isZero()||(r.negative^=1);c&&(c.words[d]=f)}return c&&c.strip(),r.strip(),t!==`div`&&n!==0&&r.iushrn(n),{div:c||null,mod:r}},i.prototype.divmod=function(e,t,r){if(n(!e.isZero()),this.isZero())return{div:new i(0),mod:new i(0)};var a,o,s;return this.negative!==0&&e.negative===0?(s=this.neg().divmod(e,t),t!==`mod`&&(a=s.div.neg()),t!==`div`&&(o=s.mod.neg(),r&&o.negative!==0&&o.iadd(e)),{div:a,mod:o}):this.negative===0&&e.negative!==0?(s=this.divmod(e.neg(),t),t!==`mod`&&(a=s.div.neg()),{div:a,mod:s.mod}):(this.negative&e.negative)===0?e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:e.length===1?t===`div`?{div:this.divn(e.words[0]),mod:null}:t===`mod`?{div:null,mod:new i(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modn(e.words[0]))}:this._wordDiv(e,t):(s=this.neg().divmod(e.neg(),t),t!==`div`&&(o=s.mod.neg(),r&&o.negative!==0&&o.isub(e)),{div:s.div,mod:o})},i.prototype.div=function(e){return this.divmod(e,`div`,!1).div},i.prototype.mod=function(e){return this.divmod(e,`mod`,!1).mod},i.prototype.umod=function(e){return this.divmod(e,`mod`,!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=t.div.negative===0?t.mod:t.mod.isub(e),r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||i===1&&a===0?t.div:t.div.negative===0?t.div.iaddn(1):t.div.isubn(1)},i.prototype.modn=function(e){n(e<=67108863);for(var t=(1<<26)%e,r=0,i=this.length-1;i>=0;i--)r=(t*r+(this.words[i]|0))%e;return r},i.prototype.idivn=function(e){n(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var i=(this.words[r]|0)+t*67108864;this.words[r]=i/e|0,t=i%e}return this.strip()},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(e.negative===0),n(!e.isZero());var t=this,r=e.clone();t=t.negative===0?t.clone():t.umod(e);for(var a=new i(1),o=new i(0),s=new i(0),c=new i(1),l=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++l;for(var u=r.clone(),d=t.clone();!t.isZero();){for(var f=0,p=1;(t.words[0]&p)===0&&f<26;++f,p<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(a.isOdd()||o.isOdd())&&(a.iadd(u),o.isub(d)),a.iushrn(1),o.iushrn(1);for(var m=0,h=1;(r.words[0]&h)===0&&m<26;++m,h<<=1);if(m>0)for(r.iushrn(m);m-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(u),c.isub(d)),s.iushrn(1),c.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s),o.isub(c)):(r.isub(t),s.isub(a),c.isub(o))}return{a:s,b:c,gcd:r.iushln(l)}},i.prototype._invmp=function(e){n(e.negative===0),n(!e.isZero());var t=this,r=e.clone();t=t.negative===0?t.clone():t.umod(e);for(var a=new i(1),o=new i(0),s=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,l=1;(t.words[0]&l)===0&&c<26;++c,l<<=1);if(c>0)for(t.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(s),a.iushrn(1);for(var u=0,d=1;(r.words[0]&d)===0&&u<26;++u,d<<=1);if(u>0)for(r.iushrn(u);u-- >0;)o.isOdd()&&o.iadd(s),o.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(o)):(r.isub(t),o.isub(a))}var f=t.cmpn(1)===0?a:o;return f.cmpn(0)<0&&f.iadd(e),f},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);do{for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(i===0||n.cmpn(1)===0)break;t.isub(n)}while(!0);return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return(this.words[0]&1)==0},i.prototype.isOdd=function(){return(this.words[0]&1)==1},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n(typeof e==`number`);var t=e%26,r=(e-t)/26,i=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var a=i,o=r;a!==0&&o<this.length;o++){var s=this.words[o]|0;s+=a,a=s>>>26,s&=67108863,this.words[o]=s}return a!==0&&(this.words[o]=a,this.length++),this},i.prototype.isZero=function(){return this.length===1&&this.words[0]===0},i.prototype.cmpn=function(e){var t=e<0;if(this.negative!==0&&!t)return-1;if(this.negative===0&&t)return 1;this.strip();var r;if(this.length>1)r=1;else{t&&(e=-e),n(e<=67108863,`Number is too big`);var i=this.words[0]|0;r=i===e?0:i<e?-1:1}return this.negative===0?r:-r|0},i.prototype.cmp=function(e){if(this.negative!==0&&e.negative===0)return-1;if(this.negative===0&&e.negative!==0)return 1;var t=this.ucmp(e);return this.negative===0?t:-t|0},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=this.words[n]|0,i=e.words[n]|0;if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return this.cmpn(e)===1},i.prototype.gt=function(e){return this.cmp(e)===1},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return this.cmpn(e)===-1},i.prototype.lt=function(e){return this.cmp(e)===-1},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return this.cmpn(e)===0},i.prototype.eq=function(e){return this.cmp(e)===0},i.red=function(e){return new T(e)},i.prototype.toRed=function(e){return n(!this.red,`Already a number in reduction context`),n(this.negative===0,`red works only with positives`),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,`fromRed works only with numbers in reduction context`),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,`Already a number in reduction context`),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,`redAdd works only with red numbers`),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,`redIAdd works only with red numbers`),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,`redSub works only with red numbers`),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,`redISub works only with red numbers`),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,`redShl works only with red numbers`),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,`redMul works only with red numbers`),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,`redMul works only with red numbers`),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,`redSqr works only with red numbers`),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,`redISqr works only with red numbers`),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,`redSqrt works only with red numbers`),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,`redInvm works only with red numbers`),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,`redNeg works only with red numbers`),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,`redPow(normalNum)`),this.red._verify1(this),this.red.pow(this,e)};var y={k256:null,p224:null,p192:null,p25519:null};function b(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}b.prototype._tmp=function(){var e=new i(null);return e.words=Array(Math.ceil(this.n/13)),e},b.prototype.ireduce=function(e){var t=e,n;do this.split(t,this.tmp),t=this.imulK(t),t=t.iadd(this.tmp),n=t.bitLength();while(n>this.n);var r=n<this.n?-1:t.ucmp(this.p);return r===0?(t.words[0]=0,t.length=1):r>0?t.isub(this.p):t.strip===void 0?t._strip():t.strip(),t},b.prototype.split=function(e,t){e.iushrn(this.n,0,t)},b.prototype.imulK=function(e){return e.imul(this.k)};function x(){b.call(this,`k256`,`ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f`)}r(x,b),x.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9){e.words[0]=0,e.length=1;return}var a=e.words[9];for(t.words[t.length++]=a&n,i=10;i<e.length;i++){var o=e.words[i]|0;e.words[i-10]=(o&n)<<4|a>>>22,a=o}a>>>=22,e.words[i-10]=a,a===0&&e.length>10?e.length-=10:e.length-=9},x.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=e.words[n]|0;t+=r*977,e.words[n]=t&67108863,t=r*64+(t/67108864|0)}return e.words[e.length-1]===0&&(e.length--,e.words[e.length-1]===0&&e.length--),e};function S(){b.call(this,`p224`,`ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001`)}r(S,b);function C(){b.call(this,`p192`,`ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff`)}r(C,b);function w(){b.call(this,`25519`,`7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed`)}r(w,b),w.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=(e.words[n]|0)*19+t,i=r&67108863;r>>>=26,e.words[n]=i,t=r}return t!==0&&(e.words[e.length++]=t),e},i._prime=function(e){if(y[e])return y[e];var t;if(e===`k256`)t=new x;else if(e===`p224`)t=new S;else if(e===`p192`)t=new C;else if(e===`p25519`)t=new w;else throw Error(`Unknown prime `+e);return y[e]=t,t};function T(e){if(typeof e==`string`){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),`modulus must be greater than 1`),this.m=e,this.prime=null}T.prototype._verify1=function(e){n(e.negative===0,`red works only with positives`),n(e.red,`red works only with red numbers`)},T.prototype._verify2=function(e,t){n((e.negative|t.negative)===0,`red works only with positives`),n(e.red&&e.red===t.red,`red works only with red numbers`)},T.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},T.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},T.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},T.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},T.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},T.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},T.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},T.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},T.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},T.prototype.isqr=function(e){return this.imul(e,e.clone())},T.prototype.sqr=function(e){return this.mul(e,e)},T.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),t===3){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var a=this.m.subn(1),o=0;!a.isZero()&&a.andln(1)===0;)o++,a.iushrn(1);n(!a.isZero());var s=new i(1).toRed(this),c=s.redNeg(),l=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new i(2*u*u).toRed(this);this.pow(u,l).cmp(c)!==0;)u.redIAdd(c);for(var d=this.pow(u,a),f=this.pow(e,a.addn(1).iushrn(1)),p=this.pow(e,a),m=o;p.cmp(s)!==0;){for(var h=p,g=0;h.cmp(s)!==0;g++)h=h.redSqr();n(g<m);var _=this.pow(d,new i(1).iushln(m-g-1));f=f.redMul(_),d=_.redSqr(),p=p.redMul(d),m=g}return f},T.prototype.invm=function(e){var t=e._invmp(this.m);return t.negative===0?this.imod(t):(t.negative=0,this.imod(t).redNeg())},T.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(t.cmpn(1)===0)return e.clone();var n=4,r=Array(1<<n);r[0]=new i(1).toRed(this),r[1]=e;for(var a=2;a<r.length;a++)r[a]=this.mul(r[a-1],e);var o=r[0],s=0,c=0,l=t.bitLength()%26;for(l===0&&(l=26),a=t.length-1;a>=0;a--){for(var u=t.words[a],d=l-1;d>=0;d--){var f=u>>d&1;if(o!==r[0]&&(o=this.sqr(o)),f===0&&s===0){c=0;continue}s<<=1,s|=f,c++,!(c!==n&&(a!==0||d!==0))&&(o=this.mul(o,r[s]),c=0,s=0)}l=26}return o},T.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},T.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new E(e)};function E(e){T.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}r(E,T),E.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},E.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},E.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},E.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=n.isub(r).iushrn(this.shift),o=a;return a.cmp(this.m)>=0?o=a.isub(this.m):a.cmpn(0)<0&&(o=a.iadd(this.m)),o._forceRed(this)},E.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}})(t===void 0||t,e)})),Hl=i(((e,t)=>{t.exports=n;function n(e,t){if(!e)throw Error(t||`Assertion failed`)}n.equal=function(e,t,n){if(e!=t)throw Error(n||`Assertion failed: `+e+` != `+t)}})),Ul=i((e=>{var t=e;function n(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if(typeof e!=`string`){for(var r=0;r<e.length;r++)n[r]=e[r]|0;return n}if(t===`hex`){e=e.replace(/[^a-z0-9]+/gi,``),e.length%2!=0&&(e=`0`+e);for(var r=0;r<e.length;r+=2)n.push(parseInt(e[r]+e[r+1],16))}else for(var r=0;r<e.length;r++){var i=e.charCodeAt(r),a=i>>8,o=i&255;a?n.push(a,o):n.push(o)}return n}t.toArray=n;function r(e){return e.length===1?`0`+e:e}t.zero2=r;function i(e){for(var t=``,n=0;n<e.length;n++)t+=r(e[n].toString(16));return t}t.toHex=i,t.encode=function(e,t){return t===`hex`?i(e):e}})),Wl=i((e=>{var t=e,n=Vl(),r=Hl(),i=Ul();t.assert=r,t.toArray=i.toArray,t.zero2=i.zero2,t.toHex=i.toHex,t.encode=i.encode;function a(e,t,n){var r=Array(Math.max(e.bitLength(),n)+1),i;for(i=0;i<r.length;i+=1)r[i]=0;var a=1<<t+1,o=e.clone();for(i=0;i<r.length;i++){var s,c=o.andln(a-1);o.isOdd()?(s=c>(a>>1)-1?(a>>1)-c:c,o.isubn(s)):s=0,r[i]=s,o.iushrn(1)}return r}t.getNAF=a;function o(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r=0,i=0,a;e.cmpn(-r)>0||t.cmpn(-i)>0;){var o=e.andln(3)+r&3,s=t.andln(3)+i&3;o===3&&(o=-1),s===3&&(s=-1);var c;o&1?(a=e.andln(7)+r&7,c=(a===3||a===5)&&s===2?-o:o):c=0,n[0].push(c);var l;s&1?(a=t.andln(7)+i&7,l=(a===3||a===5)&&o===2?-s:s):l=0,n[1].push(l),2*r===c+1&&(r=1-r),2*i===l+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return n}t.getJSF=o;function s(e,t,n){var r=`_`+t;e.prototype[t]=function(){return this[r]===void 0?this[r]=n.call(this):this[r]}}t.cachedProperty=s;function c(e){return typeof e==`string`?t.toArray(e,`hex`):e}t.parseBytes=c;function l(e){return new n(e,`hex`,`le`)}t.intFromLE=l})),Gl=i(((e,t)=>{var n;t.exports=function(e){return n||=new r(null),n.generate(e)};function r(e){this.rand=e}if(t.exports.Rand=r,r.prototype.generate=function(e){return this._rand(e)},r.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),n=0;n<t.length;n++)t[n]=this.rand.getByte();return t},typeof self==`object`)self.crypto&&self.crypto.getRandomValues?r.prototype._rand=function(e){var t=new Uint8Array(e);return self.crypto.getRandomValues(t),t}:self.msCrypto&&self.msCrypto.getRandomValues?r.prototype._rand=function(e){var t=new Uint8Array(e);return self.msCrypto.getRandomValues(t),t}:typeof window==`object`&&(r.prototype._rand=function(){throw Error(`Not implemented yet`)});else try{var i=l();if(typeof i.randomBytes!=`function`)throw Error(`Not supported`);r.prototype._rand=function(e){return i.randomBytes(e)}}catch{}})),Kl=i(((e,t)=>{var n=Vl(),r=Wl(),i=r.getNAF,a=r.getJSF,o=r.assert;function s(e,t){this.type=e,this.p=new n(t.p,16),this.red=t.prime?n.red(t.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=t.n&&new n(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=[,,,,],this._wnafT2=[,,,,],this._wnafT3=[,,,,],this._wnafT4=[,,,,],this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}t.exports=s,s.prototype.point=function(){throw Error(`Not implemented`)},s.prototype.validate=function(){throw Error(`Not implemented`)},s.prototype._fixedNafMul=function(e,t){o(e.precomputed);var n=e._getDoubles(),r=i(t,1,this._bitLength),a=(1<<n.step+1)-(n.step%2==0?2:1);a/=3;var s=[],c,l;for(c=0;c<r.length;c+=n.step){l=0;for(var u=c+n.step-1;u>=c;u--)l=(l<<1)+r[u];s.push(l)}for(var d=this.jpoint(null,null,null),f=this.jpoint(null,null,null),p=a;p>0;p--){for(c=0;c<s.length;c++)l=s[c],l===p?f=f.mixedAdd(n.points[c]):l===-p&&(f=f.mixedAdd(n.points[c].neg()));d=d.add(f)}return d.toP()},s.prototype._wnafMul=function(e,t){var n=4,r=e._getNAFPoints(n);n=r.wnd;for(var a=r.points,s=i(t,n,this._bitLength),c=this.jpoint(null,null,null),l=s.length-1;l>=0;l--){for(var u=0;l>=0&&s[l]===0;l--)u++;if(l>=0&&u++,c=c.dblp(u),l<0)break;var d=s[l];o(d!==0),c=e.type===`affine`?d>0?c.mixedAdd(a[d-1>>1]):c.mixedAdd(a[-d-1>>1].neg()):d>0?c.add(a[d-1>>1]):c.add(a[-d-1>>1].neg())}return e.type===`affine`?c.toP():c},s.prototype._wnafMulAdd=function(e,t,n,r,o){var s=this._wnafT1,c=this._wnafT2,l=this._wnafT3,u=0,d,f,p;for(d=0;d<r;d++){p=t[d];var m=p._getNAFPoints(e);s[d]=m.wnd,c[d]=m.points}for(d=r-1;d>=1;d-=2){var h=d-1,g=d;if(s[h]!==1||s[g]!==1){l[h]=i(n[h],s[h],this._bitLength),l[g]=i(n[g],s[g],this._bitLength),u=Math.max(l[h].length,u),u=Math.max(l[g].length,u);continue}var _=[t[h],null,null,t[g]];t[h].y.cmp(t[g].y)===0?(_[1]=t[h].add(t[g]),_[2]=t[h].toJ().mixedAdd(t[g].neg())):t[h].y.cmp(t[g].y.redNeg())===0?(_[1]=t[h].toJ().mixedAdd(t[g]),_[2]=t[h].add(t[g].neg())):(_[1]=t[h].toJ().mixedAdd(t[g]),_[2]=t[h].toJ().mixedAdd(t[g].neg()));var v=[-3,-1,-5,-7,0,7,5,1,3],y=a(n[h],n[g]);for(u=Math.max(y[0].length,u),l[h]=Array(u),l[g]=Array(u),f=0;f<u;f++){var b=y[0][f]|0,x=y[1][f]|0;l[h][f]=v[(b+1)*3+(x+1)],l[g][f]=0,c[h]=_}}var S=this.jpoint(null,null,null),C=this._wnafT4;for(d=u;d>=0;d--){for(var w=0;d>=0;){var T=!0;for(f=0;f<r;f++)C[f]=l[f][d]|0,C[f]!==0&&(T=!1);if(!T)break;w++,d--}if(d>=0&&w++,S=S.dblp(w),d<0)break;for(f=0;f<r;f++){var E=C[f];E!==0&&(E>0?p=c[f][E-1>>1]:E<0&&(p=c[f][-E-1>>1].neg()),S=p.type===`affine`?S.mixedAdd(p):S.add(p))}}for(d=0;d<r;d++)c[d]=null;return o?S:S.toP()};function c(e,t){this.curve=e,this.type=t,this.precomputed=null}s.BasePoint=c,c.prototype.eq=function(){throw Error(`Not implemented`)},c.prototype.validate=function(){return this.curve.validate(this)},s.prototype.decodePoint=function(e,t){e=r.toArray(e,t);var n=this.p.byteLength();if((e[0]===4||e[0]===6||e[0]===7)&&e.length-1==2*n)return e[0]===6?o(e[e.length-1]%2==0):e[0]===7&&o(e[e.length-1]%2==1),this.point(e.slice(1,1+n),e.slice(1+n,1+2*n));if((e[0]===2||e[0]===3)&&e.length-1===n)return this.pointFromX(e.slice(1,1+n),e[0]===3);throw Error(`Unknown point format`)},c.prototype.encodeCompressed=function(e){return this.encode(e,!0)},c.prototype._encode=function(e){var t=this.curve.p.byteLength(),n=this.getX().toArray(`be`,t);return e?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray(`be`,t))},c.prototype.encode=function(e,t){return r.encode(this._encode(t),e)},c.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},c.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return t?t.points.length>=Math.ceil((e.bitLength()+1)/t.step):!1},c.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<t;i+=e){for(var a=0;a<e;a++)r=r.dbl();n.push(r)}return{step:e,points:n}},c.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],n=(1<<e)-1,r=n===1?null:this.dbl(),i=1;i<n;i++)t[i]=t[i-1].add(r);return{wnd:e,points:t}},c.prototype._getBeta=function(){return null},c.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t}})),ql=i(((e,t)=>{typeof Object.create==`function`?t.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}})),Jl=i(((e,t)=>{var n=Wl(),r=Vl(),i=ql(),a=Kl(),o=n.assert;function s(e){a.call(this,`short`,e),this.a=new r(e.a,16).toRed(this.red),this.b=new r(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(e),this._endoWnafT1=[,,,,],this._endoWnafT2=[,,,,]}i(s,a),t.exports=s,s.prototype._getEndomorphism=function(e){if(!(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)){var t,n;if(e.beta)t=new r(e.beta,16).toRed(this.red);else{var i=this._getEndoRoots(this.p);t=i[0].cmp(i[1])<0?i[0]:i[1],t=t.toRed(this.red)}if(e.lambda)n=new r(e.lambda,16);else{var a=this._getEndoRoots(this.n);this.g.mul(a[0]).x.cmp(this.g.x.redMul(t))===0?n=a[0]:(n=a[1],o(this.g.mul(n).x.cmp(this.g.x.redMul(t))===0))}var s=e.basis?e.basis.map(function(e){return{a:new r(e.a,16),b:new r(e.b,16)}}):this._getEndoBasis(n);return{beta:t,lambda:n,basis:s}}},s.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:r.mont(e),n=new r(2).toRed(t).redInvm(),i=n.redNeg(),a=new r(3).toRed(t).redNeg().redSqrt().redMul(n);return[i.redAdd(a).fromRed(),i.redSub(a).fromRed()]},s.prototype._getEndoBasis=function(e){for(var t=this.n.ushrn(Math.floor(this.n.bitLength()/2)),n=e,i=this.n.clone(),a=new r(1),o=new r(0),s=new r(0),c=new r(1),l,u,d,f,p,m,h,g=0,_,v;n.cmpn(0)!==0;){var y=i.div(n);_=i.sub(y.mul(n)),v=s.sub(y.mul(a));var b=c.sub(y.mul(o));if(!d&&_.cmp(t)<0)l=h.neg(),u=a,d=_.neg(),f=v;else if(d&&++g===2)break;h=_,i=n,n=_,s=a,a=v,c=o,o=b}p=_.neg(),m=v;var x=d.sqr().add(f.sqr());return p.sqr().add(m.sqr()).cmp(x)>=0&&(p=l,m=u),d.negative&&(d=d.neg(),f=f.neg()),p.negative&&(p=p.neg(),m=m.neg()),[{a:d,b:f},{a:p,b:m}]},s.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),a=n.b.neg().mul(e).divRound(this.n),o=i.mul(n.a),s=a.mul(r.a),c=i.mul(n.b),l=a.mul(r.b);return{k1:e.sub(o).sub(s),k2:c.add(l).neg()}},s.prototype.pointFromX=function(e,t){e=new r(e,16),e.red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),i=n.redSqrt();if(i.redSqr().redSub(n).cmp(this.zero)!==0)throw Error(`invalid point`);var a=i.fromRed().isOdd();return(t&&!a||!t&&a)&&(i=i.redNeg()),this.point(e,i)},s.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return n.redSqr().redISub(i).cmpn(0)===0},s.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,a=0;a<e.length;a++){var o=this._endoSplit(t[a]),s=e[a],c=s._getBeta();o.k1.negative&&(o.k1.ineg(),s=s.neg(!0)),o.k2.negative&&(o.k2.ineg(),c=c.neg(!0)),r[a*2]=s,r[a*2+1]=c,i[a*2]=o.k1,i[a*2+1]=o.k2}for(var l=this._wnafMulAdd(1,r,i,a*2,n),u=0;u<a*2;u++)r[u]=null,i[u]=null;return l};function c(e,t,n,i){a.BasePoint.call(this,e,`affine`),t===null&&n===null?(this.x=null,this.y=null,this.inf=!0):(this.x=new r(t,16),this.y=new r(n,16),i&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}i(c,a.BasePoint),s.prototype.point=function(e,t,n){return new c(this,e,t,n)},s.prototype.pointFromJSON=function(e,t){return c.fromJSON(this,e,t)},c.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var n=this.curve,r=function(e){return n.point(e.x.redMul(n.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(r)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(r)}}}return t}},c.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},c.fromJSON=function(e,t,n){typeof t==`string`&&(t=JSON.parse(t));var r=e.point(t[0],t[1],n);if(!t[2])return r;function i(t){return e.point(t[0],t[1],n)}var a=t[2];return r.precomputed={beta:null,doubles:a.doubles&&{step:a.doubles.step,points:[r].concat(a.doubles.points.map(i))},naf:a.naf&&{wnd:a.naf.wnd,points:[r].concat(a.naf.points.map(i))}},r},c.prototype.inspect=function(){return this.isInfinity()?`<EC Point Infinity>`:`<EC Point x: `+this.x.fromRed().toString(16,2)+` y: `+this.y.fromRed().toString(16,2)+`>`},c.prototype.isInfinity=function(){return this.inf},c.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e)||this.x.cmp(e.x)===0)return this.curve.point(null,null);var t=this.y.redSub(e.y);t.cmpn(0)!==0&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},c.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(e.cmpn(0)===0)return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),a=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,o)},c.prototype.getX=function(){return this.x.fromRed()},c.prototype.getY=function(){return this.y.fromRed()},c.prototype.mul=function(e){return e=new r(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},c.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},c.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||this.x.cmp(e.x)===0&&this.y.cmp(e.y)===0)},c.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},c.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)};function l(e,t,n,i){a.BasePoint.call(this,e,`jacobian`),t===null&&n===null&&i===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new r(0)):(this.x=new r(t,16),this.y=new r(n,16),this.z=new r(i,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}i(l,a.BasePoint),s.prototype.jpoint=function(e,t,n){return new l(this,e,t,n)},l.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},l.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},l.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),a=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(n.redMul(this.z)),s=r.redSub(i),c=a.redSub(o);if(s.cmpn(0)===0)return c.cmpn(0)===0?this.dbl():this.curve.jpoint(null,null,null);var l=s.redSqr(),u=l.redMul(s),d=r.redMul(l),f=c.redSqr().redIAdd(u).redISub(d).redISub(d),p=c.redMul(d.redISub(f)).redISub(a.redMul(u)),m=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(f,p,m)},l.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,a=e.y.redMul(t).redMul(this.z),o=n.redSub(r),s=i.redSub(a);if(o.cmpn(0)===0)return s.cmpn(0)===0?this.dbl():this.curve.jpoint(null,null,null);var c=o.redSqr(),l=c.redMul(o),u=n.redMul(c),d=s.redSqr().redIAdd(l).redISub(u).redISub(u),f=s.redMul(u.redISub(d)).redISub(i.redMul(l)),p=this.z.redMul(o);return this.curve.jpoint(d,f,p)},l.prototype.dblp=function(e){if(e===0||this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t<e;t++)n=n.dbl();return n}var r=this.curve.a,i=this.curve.tinv,a=this.x,o=this.y,s=this.z,c=s.redSqr().redSqr(),l=o.redAdd(o);for(t=0;t<e;t++){var u=a.redSqr(),d=l.redSqr(),f=d.redSqr(),p=u.redAdd(u).redIAdd(u).redIAdd(r.redMul(c)),m=a.redMul(d),h=p.redSqr().redISub(m.redAdd(m)),g=m.redISub(h),_=p.redMul(g);_=_.redIAdd(_).redISub(f);var v=l.redMul(s);t+1<e&&(c=c.redMul(f)),a=h,s=v,l=_}return this.curve.jpoint(a,l.redMul(i),s)},l.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},l.prototype._zeroDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r),c=s.redSqr().redISub(o).redISub(o),l=a.redIAdd(a);l=l.redIAdd(l),l=l.redIAdd(l),e=c,t=s.redMul(o.redISub(c)).redISub(l),n=this.y.redAdd(this.y)}else{var u=this.x.redSqr(),d=this.y.redSqr(),f=d.redSqr(),p=this.x.redAdd(d).redSqr().redISub(u).redISub(f);p=p.redIAdd(p);var m=u.redAdd(u).redIAdd(u),h=m.redSqr(),g=f.redIAdd(f);g=g.redIAdd(g),g=g.redIAdd(g),e=h.redISub(p).redISub(p),t=m.redMul(p.redISub(e)).redISub(g),n=this.y.redMul(this.z),n=n.redIAdd(n)}return this.curve.jpoint(e,t,n)},l.prototype._threeDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),c=s.redSqr().redISub(o).redISub(o);e=c;var l=a.redIAdd(a);l=l.redIAdd(l),l=l.redIAdd(l),t=s.redMul(o.redISub(c)).redISub(l),n=this.y.redAdd(this.y)}else{var u=this.z.redSqr(),d=this.y.redSqr(),f=this.x.redMul(d),p=this.x.redSub(u).redMul(this.x.redAdd(u));p=p.redAdd(p).redIAdd(p);var m=f.redIAdd(f);m=m.redIAdd(m);var h=m.redAdd(m);e=p.redSqr().redISub(h),n=this.y.redAdd(this.z).redSqr().redISub(d).redISub(u);var g=d.redSqr();g=g.redIAdd(g),g=g.redIAdd(g),g=g.redIAdd(g),t=p.redMul(m.redISub(e)).redISub(g)}return this.curve.jpoint(e,t,n)},l.prototype._dbl=function(){var e=this.curve.a,t=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),a=t.redSqr(),o=n.redSqr(),s=a.redAdd(a).redIAdd(a).redIAdd(e.redMul(i)),c=t.redAdd(t);c=c.redIAdd(c);var l=c.redMul(o),u=s.redSqr().redISub(l.redAdd(l)),d=l.redISub(u),f=o.redSqr();f=f.redIAdd(f),f=f.redIAdd(f),f=f.redIAdd(f);var p=s.redMul(d).redISub(f),m=n.redAdd(n).redMul(r);return this.curve.jpoint(u,p,m)},l.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr(),r=t.redSqr(),i=e.redAdd(e).redIAdd(e),a=i.redSqr(),o=this.x.redAdd(t).redSqr().redISub(e).redISub(r);o=o.redIAdd(o),o=o.redAdd(o).redIAdd(o),o=o.redISub(a);var s=o.redSqr(),c=r.redIAdd(r);c=c.redIAdd(c),c=c.redIAdd(c),c=c.redIAdd(c);var l=i.redIAdd(o).redSqr().redISub(a).redISub(s).redISub(c),u=t.redMul(l);u=u.redIAdd(u),u=u.redIAdd(u);var d=this.x.redMul(s).redISub(u);d=d.redIAdd(d),d=d.redIAdd(d);var f=this.y.redMul(l.redMul(c.redISub(l)).redISub(o.redMul(s)));f=f.redIAdd(f),f=f.redIAdd(f),f=f.redIAdd(f);var p=this.z.redAdd(o).redSqr().redISub(n).redISub(s);return this.curve.jpoint(d,f,p)},l.prototype.mul=function(e,t){return e=new r(e,t),this.curve._wnafMul(this,e)},l.prototype.eq=function(e){if(e.type===`affine`)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),n=e.z.redSqr();if(this.x.redMul(n).redISub(e.x.redMul(t)).cmpn(0)!==0)return!1;var r=t.redMul(this.z),i=n.redMul(e.z);return this.y.redMul(i).redISub(e.y.redMul(r)).cmpn(0)===0},l.prototype.eqXToP=function(e){var t=this.z.redSqr(),n=e.toRed(this.curve.red).redMul(t);if(this.x.cmp(n)===0)return!0;for(var r=e.clone(),i=this.curve.redN.redMul(t);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),this.x.cmp(n)===0)return!0}},l.prototype.inspect=function(){return this.isInfinity()?`<EC JPoint Infinity>`:`<EC JPoint x: `+this.x.toString(16,2)+` y: `+this.y.toString(16,2)+` z: `+this.z.toString(16,2)+`>`},l.prototype.isInfinity=function(){return this.z.cmpn(0)===0}})),Yl=i(((e,t)=>{var n=Vl(),r=ql(),i=Kl(),a=Wl();function o(e){i.call(this,`mont`,e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}r(o,i),t.exports=o,o.prototype.validate=function(e){var t=e.normalize().x,n=t.redSqr(),r=n.redMul(t).redAdd(n.redMul(this.a)).redAdd(t);return r.redSqrt().redSqr().cmp(r)===0};function s(e,t,r){i.BasePoint.call(this,e,`projective`),t===null&&r===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(t,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}r(s,i.BasePoint),o.prototype.decodePoint=function(e,t){return this.point(a.toArray(e,t),1)},o.prototype.point=function(e,t){return new s(this,e,t)},o.prototype.pointFromJSON=function(e){return s.fromJSON(this,e)},s.prototype.precompute=function(){},s.prototype._encode=function(){return this.getX().toArray(`be`,this.curve.p.byteLength())},s.fromJSON=function(e,t){return new s(e,t[0],t[1]||e.one)},s.prototype.inspect=function(){return this.isInfinity()?`<EC Point Infinity>`:`<EC Point x: `+this.x.fromRed().toString(16,2)+` z: `+this.z.fromRed().toString(16,2)+`>`},s.prototype.isInfinity=function(){return this.z.cmpn(0)===0},s.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),n=e.redSub(t),r=e.redMul(t),i=n.redMul(t.redAdd(this.curve.a24.redMul(n)));return this.curve.point(r,i)},s.prototype.add=function(){throw Error(`Not supported on Montgomery curve`)},s.prototype.diffAdd=function(e,t){var n=this.x.redAdd(this.z),r=this.x.redSub(this.z),i=e.x.redAdd(e.z),a=e.x.redSub(e.z).redMul(n),o=i.redMul(r),s=t.z.redMul(a.redAdd(o).redSqr()),c=t.x.redMul(a.redISub(o).redSqr());return this.curve.point(s,c)},s.prototype.mul=function(e){for(var t=e.clone(),n=this,r=this.curve.point(null,null),i=this,a=[];t.cmpn(0)!==0;t.iushrn(1))a.push(t.andln(1));for(var o=a.length-1;o>=0;o--)a[o]===0?(n=n.diffAdd(r,i),r=r.dbl()):(r=n.diffAdd(r,i),n=n.dbl());return r},s.prototype.mulAdd=function(){throw Error(`Not supported on Montgomery curve`)},s.prototype.jumlAdd=function(){throw Error(`Not supported on Montgomery curve`)},s.prototype.eq=function(e){return this.getX().cmp(e.getX())===0},s.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},s.prototype.getX=function(){return this.normalize(),this.x.fromRed()}})),Xl=i(((e,t)=>{var n=Wl(),r=Vl(),i=ql(),a=Kl(),o=n.assert;function s(e){this.twisted=(e.a|0)!=1,this.mOneA=this.twisted&&(e.a|0)==-1,this.extended=this.mOneA,a.call(this,`edwards`,e),this.a=new r(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new r(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new r(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),o(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(e.c|0)==1}i(s,a),t.exports=s,s.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},s.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},s.prototype.jpoint=function(e,t,n,r){return this.point(e,t,n,r)},s.prototype.pointFromX=function(e,t){e=new r(e,16),e.red||(e=e.toRed(this.red));var n=e.redSqr(),i=this.c2.redSub(this.a.redMul(n)),a=this.one.redSub(this.c2.redMul(this.d).redMul(n)),o=i.redMul(a.redInvm()),s=o.redSqrt();if(s.redSqr().redSub(o).cmp(this.zero)!==0)throw Error(`invalid point`);var c=s.fromRed().isOdd();return(t&&!c||!t&&c)&&(s=s.redNeg()),this.point(e,s)},s.prototype.pointFromY=function(e,t){e=new r(e,16),e.red||(e=e.toRed(this.red));var n=e.redSqr(),i=n.redSub(this.c2),a=n.redMul(this.d).redMul(this.c2).redSub(this.a),o=i.redMul(a.redInvm());if(o.cmp(this.zero)===0){if(t)throw Error(`invalid point`);return this.point(this.zero,e)}var s=o.redSqrt();if(s.redSqr().redSub(o).cmp(this.zero)!==0)throw Error(`invalid point`);return s.fromRed().isOdd()!==t&&(s=s.redNeg()),this.point(s,e)},s.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),n=e.y.redSqr(),r=t.redMul(this.a).redAdd(n),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(n)));return r.cmp(i)===0};function c(e,t,n,i,o){a.BasePoint.call(this,e,`projective`),t===null&&n===null&&i===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new r(t,16),this.y=new r(n,16),this.z=i?new r(i,16):this.curve.one,this.t=o&&new r(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}i(c,a.BasePoint),s.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},s.prototype.point=function(e,t,n,r){return new c(this,e,t,n,r)},c.fromJSON=function(e,t){return new c(e,t[0],t[1],t[2])},c.prototype.inspect=function(){return this.isInfinity()?`<EC Point Infinity>`:`<EC Point x: `+this.x.fromRed().toString(16,2)+` y: `+this.y.fromRed().toString(16,2)+` z: `+this.z.fromRed().toString(16,2)+`>`},c.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},c.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var r=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),a=r.redAdd(t),o=a.redSub(n),s=r.redSub(t),c=i.redMul(o),l=a.redMul(s),u=i.redMul(s),d=o.redMul(a);return this.curve.point(c,l,d,u)},c.prototype._projDbl=function(){var e=this.x.redAdd(this.y).redSqr(),t=this.x.redSqr(),n=this.y.redSqr(),r,i,a,o,s,c;if(this.curve.twisted){o=this.curve._mulA(t);var l=o.redAdd(n);this.zOne?(r=e.redSub(t).redSub(n).redMul(l.redSub(this.curve.two)),i=l.redMul(o.redSub(n)),a=l.redSqr().redSub(l).redSub(l)):(s=this.z.redSqr(),c=l.redSub(s).redISub(s),r=e.redSub(t).redISub(n).redMul(c),i=l.redMul(o.redSub(n)),a=l.redMul(c))}else o=t.redAdd(n),s=this.curve._mulC(this.z).redSqr(),c=o.redSub(s).redSub(s),r=this.curve._mulC(e.redISub(o)).redMul(c),i=this.curve._mulC(o).redMul(t.redISub(n)),a=o.redMul(c);return this.curve.point(r,i,a)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},c.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),n=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),r=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),a=n.redSub(t),o=i.redSub(r),s=i.redAdd(r),c=n.redAdd(t),l=a.redMul(o),u=s.redMul(c),d=a.redMul(c),f=o.redMul(s);return this.curve.point(l,u,f,d)},c.prototype._projAdd=function(e){var t=this.z.redMul(e.z),n=t.redSqr(),r=this.x.redMul(e.x),i=this.y.redMul(e.y),a=this.curve.d.redMul(r).redMul(i),o=n.redSub(a),s=n.redAdd(a),c=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(r).redISub(i),l=t.redMul(o).redMul(c),u,d;return this.curve.twisted?(u=t.redMul(s).redMul(i.redSub(this.curve._mulA(r))),d=o.redMul(s)):(u=t.redMul(s).redMul(i.redSub(r)),d=this.curve._mulC(o).redMul(s)),this.curve.point(l,u,d)},c.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},c.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!1)},c.prototype.jmulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!0)},c.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&=this.t.redMul(e),this.z=this.curve.one,this.zOne=!0,this},c.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()},c.prototype.getY=function(){return this.normalize(),this.y.fromRed()},c.prototype.eq=function(e){return this===e||this.getX().cmp(e.getX())===0&&this.getY().cmp(e.getY())===0},c.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(t)===0)return!0;for(var n=e.clone(),r=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),this.x.cmp(t)===0)return!0}},c.prototype.toP=c.prototype.normalize,c.prototype.mixedAdd=c.prototype.add})),Zl=i((e=>{var t=e;t.base=Kl(),t.short=Jl(),t.mont=Yl(),t.edwards=Xl()})),Ql=i((e=>{var t=Hl();e.inherits=ql();function n(e,t){return(e.charCodeAt(t)&64512)!=55296||t<0||t+1>=e.length?!1:(e.charCodeAt(t+1)&64512)==56320}function r(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if(typeof e==`string`){if(!t)for(var i=0,a=0;a<e.length;a++){var o=e.charCodeAt(a);o<128?r[i++]=o:o<2048?(r[i++]=o>>6|192,r[i++]=o&63|128):n(e,a)?(o=65536+((o&1023)<<10)+(e.charCodeAt(++a)&1023),r[i++]=o>>18|240,r[i++]=o>>12&63|128,r[i++]=o>>6&63|128,r[i++]=o&63|128):(r[i++]=o>>12|224,r[i++]=o>>6&63|128,r[i++]=o&63|128)}else if(t===`hex`)for(e=e.replace(/[^a-z0-9]+/gi,``),e.length%2!=0&&(e=`0`+e),a=0;a<e.length;a+=2)r.push(parseInt(e[a]+e[a+1],16))}else for(a=0;a<e.length;a++)r[a]=e[a]|0;return r}e.toArray=r;function i(e){for(var t=``,n=0;n<e.length;n++)t+=s(e[n].toString(16));return t}e.toHex=i;function a(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(e&255)<<24)>>>0}e.htonl=a;function o(e,t){for(var n=``,r=0;r<e.length;r++){var i=e[r];t===`little`&&(i=a(i)),n+=c(i.toString(16))}return n}e.toHex32=o;function s(e){return e.length===1?`0`+e:e}e.zero2=s;function c(e){return e.length===7?`0`+e:e.length===6?`00`+e:e.length===5?`000`+e:e.length===4?`0000`+e:e.length===3?`00000`+e:e.length===2?`000000`+e:e.length===1?`0000000`+e:e}e.zero8=c;function l(e,n,r,i){var a=r-n;t(a%4==0);for(var o=Array(a/4),s=0,c=n;s<o.length;s++,c+=4)o[s]=(i===`big`?e[c]<<24|e[c+1]<<16|e[c+2]<<8|e[c+3]:e[c+3]<<24|e[c+2]<<16|e[c+1]<<8|e[c])>>>0;return o}e.join32=l;function u(e,t){for(var n=Array(e.length*4),r=0,i=0;r<e.length;r++,i+=4){var a=e[r];t===`big`?(n[i]=a>>>24,n[i+1]=a>>>16&255,n[i+2]=a>>>8&255,n[i+3]=a&255):(n[i+3]=a>>>24,n[i+2]=a>>>16&255,n[i+1]=a>>>8&255,n[i]=a&255)}return n}e.split32=u;function d(e,t){return e>>>t|e<<32-t}e.rotr32=d;function f(e,t){return e<<t|e>>>32-t}e.rotl32=f;function p(e,t){return e+t>>>0}e.sum32=p;function m(e,t,n){return e+t+n>>>0}e.sum32_3=m;function h(e,t,n,r){return e+t+n+r>>>0}e.sum32_4=h;function g(e,t,n,r,i){return e+t+n+r+i>>>0}e.sum32_5=g;function _(e,t,n,r){var i=e[t],a=r+e[t+1]>>>0;e[t]=+(a<r)+n+i>>>0,e[t+1]=a}e.sum64=_;function v(e,t,n,r){return+(t+r>>>0<t)+e+n>>>0}e.sum64_hi=v;function y(e,t,n,r){return t+r>>>0}e.sum64_lo=y;function b(e,t,n,r,i,a,o,s){var c=0,l=t;return l=l+r>>>0,c+=+(l<t),l=l+a>>>0,c+=+(l<a),l=l+s>>>0,c+=+(l<s),e+n+i+o+c>>>0}e.sum64_4_hi=b;function x(e,t,n,r,i,a,o,s){return t+r+a+s>>>0}e.sum64_4_lo=x;function S(e,t,n,r,i,a,o,s,c,l){var u=0,d=t;return d=d+r>>>0,u+=+(d<t),d=d+a>>>0,u+=+(d<a),d=d+s>>>0,u+=+(d<s),d=d+l>>>0,u+=+(d<l),e+n+i+o+c+u>>>0}e.sum64_5_hi=S;function C(e,t,n,r,i,a,o,s,c,l){return t+r+a+s+l>>>0}e.sum64_5_lo=C;function w(e,t,n){return(t<<32-n|e>>>n)>>>0}e.rotr64_hi=w;function T(e,t,n){return(e<<32-n|t>>>n)>>>0}e.rotr64_lo=T;function E(e,t,n){return e>>>n}e.shr64_hi=E;function D(e,t,n){return(e<<32-n|t>>>n)>>>0}e.shr64_lo=D})),$l=i((e=>{var t=Ql(),n=Hl();function r(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian=`big`,this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}e.BlockHash=r,r.prototype.update=function(e,n){if(e=t.toArray(e,n),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){e=this.pending;var r=e.length%this._delta8;this.pending=e.slice(e.length-r,e.length),this.pending.length===0&&(this.pending=null),e=t.join32(e,0,e.length-r,this.endian);for(var i=0;i<e.length;i+=this._delta32)this._update(e,i,i+this._delta32)}return this},r.prototype.digest=function(e){return this.update(this._pad()),n(this.pending===null),this._digest(e)},r.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(e<<=3,this.endian===`big`){for(var a=8;a<this.padLength;a++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=e>>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=e&255}else for(r[i++]=e&255,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,a=8;a<this.padLength;a++)r[i++]=0;return r}})),eu=i((e=>{var t=Ql().rotr32;function n(e,t,n,o){if(e===0)return r(t,n,o);if(e===1||e===3)return a(t,n,o);if(e===2)return i(t,n,o)}e.ft_1=n;function r(e,t,n){return e&t^~e&n}e.ch32=r;function i(e,t,n){return e&t^e&n^t&n}e.maj32=i;function a(e,t,n){return e^t^n}e.p32=a;function o(e){return t(e,2)^t(e,13)^t(e,22)}e.s0_256=o;function s(e){return t(e,6)^t(e,11)^t(e,25)}e.s1_256=s;function c(e){return t(e,7)^t(e,18)^e>>>3}e.g0_256=c;function l(e){return t(e,17)^t(e,19)^e>>>10}e.g1_256=l})),tu=i(((e,t)=>{var n=Ql(),r=$l(),i=eu(),a=n.rotl32,o=n.sum32,s=n.sum32_5,c=i.ft_1,l=r.BlockHash,u=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;l.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=Array(80)}n.inherits(d,l),t.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=a(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],l=this.h[1],d=this.h[2],f=this.h[3],p=this.h[4];for(r=0;r<n.length;r++){var m=~~(r/20),h=s(a(i,5),c(m,l,d,f),p,n[r],u[m]);p=f,f=d,d=a(l,30),l=i,i=h}this.h[0]=o(this.h[0],i),this.h[1]=o(this.h[1],l),this.h[2]=o(this.h[2],d),this.h[3]=o(this.h[3],f),this.h[4]=o(this.h[4],p)},d.prototype._digest=function(e){return e===`hex`?n.toHex32(this.h,`big`):n.split32(this.h,`big`)}})),nu=i(((e,t)=>{var n=Ql(),r=$l(),i=eu(),a=Hl(),o=n.sum32,s=n.sum32_4,c=n.sum32_5,l=i.ch32,u=i.maj32,d=i.s0_256,f=i.s1_256,p=i.g0_256,m=i.g1_256,h=r.BlockHash,g=[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];function _(){if(!(this instanceof _))return new _;h.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=g,this.W=Array(64)}n.inherits(_,h),t.exports=_,_.blockSize=512,_.outSize=256,_.hmacStrength=192,_.padLength=64,_.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=s(m(n[r-2]),n[r-7],p(n[r-15]),n[r-16]);var i=this.h[0],h=this.h[1],g=this.h[2],_=this.h[3],v=this.h[4],y=this.h[5],b=this.h[6],x=this.h[7];for(a(this.k.length===n.length),r=0;r<n.length;r++){var S=c(x,f(v),l(v,y,b),this.k[r],n[r]),C=o(d(i),u(i,h,g));x=b,b=y,y=v,v=o(_,S),_=g,g=h,h=i,i=o(S,C)}this.h[0]=o(this.h[0],i),this.h[1]=o(this.h[1],h),this.h[2]=o(this.h[2],g),this.h[3]=o(this.h[3],_),this.h[4]=o(this.h[4],v),this.h[5]=o(this.h[5],y),this.h[6]=o(this.h[6],b),this.h[7]=o(this.h[7],x)},_.prototype._digest=function(e){return e===`hex`?n.toHex32(this.h,`big`):n.split32(this.h,`big`)}})),ru=i(((e,t)=>{var n=Ql(),r=nu();function i(){if(!(this instanceof i))return new i;r.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}n.inherits(i,r),t.exports=i,i.blockSize=512,i.outSize=224,i.hmacStrength=192,i.padLength=64,i.prototype._digest=function(e){return e===`hex`?n.toHex32(this.h.slice(0,7),`big`):n.split32(this.h.slice(0,7),`big`)}})),iu=i(((e,t)=>{var n=Ql(),r=$l(),i=Hl(),a=n.rotr64_hi,o=n.rotr64_lo,s=n.shr64_hi,c=n.shr64_lo,l=n.sum64,u=n.sum64_hi,d=n.sum64_lo,f=n.sum64_4_hi,p=n.sum64_4_lo,m=n.sum64_5_hi,h=n.sum64_5_lo,g=r.BlockHash,_=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function v(){if(!(this instanceof v))return new v;g.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=_,this.W=Array(160)}n.inherits(v,g),t.exports=v,v.blockSize=1024,v.outSize=512,v.hmacStrength=192,v.padLength=128,v.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var i=k(n[r-4],n[r-3]),a=A(n[r-4],n[r-3]),o=n[r-14],s=n[r-13],c=D(n[r-30],n[r-29]),l=O(n[r-30],n[r-29]),u=n[r-32],d=n[r-31];n[r]=f(i,a,o,s,c,l,u,d),n[r+1]=p(i,a,o,s,c,l,u,d)}},v.prototype._update=function(e,t){this._prepareBlock(e,t);var n=this.W,r=this.h[0],a=this.h[1],o=this.h[2],s=this.h[3],c=this.h[4],f=this.h[5],p=this.h[6],g=this.h[7],_=this.h[8],v=this.h[9],D=this.h[10],O=this.h[11],k=this.h[12],A=this.h[13],j=this.h[14],M=this.h[15];i(this.k.length===n.length);for(var N=0;N<n.length;N+=2){var P=j,F=M,I=T(_,v),L=E(_,v),R=y(_,v,D,O,k,A),z=b(_,v,D,O,k,A),B=this.k[N],V=this.k[N+1],H=n[N],ee=n[N+1],U=m(P,F,I,L,R,z,B,V,H,ee),W=h(P,F,I,L,R,z,B,V,H,ee);P=C(r,a),F=w(r,a),I=x(r,a,o,s,c,f),L=S(r,a,o,s,c,f);var te=u(P,F,I,L),ne=d(P,F,I,L);j=k,M=A,k=D,A=O,D=_,O=v,_=u(p,g,U,W),v=d(g,g,U,W),p=c,g=f,c=o,f=s,o=r,s=a,r=u(U,W,te,ne),a=d(U,W,te,ne)}l(this.h,0,r,a),l(this.h,2,o,s),l(this.h,4,c,f),l(this.h,6,p,g),l(this.h,8,_,v),l(this.h,10,D,O),l(this.h,12,k,A),l(this.h,14,j,M)},v.prototype._digest=function(e){return e===`hex`?n.toHex32(this.h,`big`):n.split32(this.h,`big`)};function y(e,t,n,r,i){var a=e&n^~e&i;return a<0&&(a+=4294967296),a}function b(e,t,n,r,i,a){var o=t&r^~t&a;return o<0&&(o+=4294967296),o}function x(e,t,n,r,i){var a=e&n^e&i^n&i;return a<0&&(a+=4294967296),a}function S(e,t,n,r,i,a){var o=t&r^t&a^r&a;return o<0&&(o+=4294967296),o}function C(e,t){var n=a(e,t,28),r=a(t,e,2),i=a(t,e,7),o=n^r^i;return o<0&&(o+=4294967296),o}function w(e,t){var n=o(e,t,28),r=o(t,e,2),i=o(t,e,7),a=n^r^i;return a<0&&(a+=4294967296),a}function T(e,t){var n=a(e,t,14),r=a(e,t,18),i=a(t,e,9),o=n^r^i;return o<0&&(o+=4294967296),o}function E(e,t){var n=o(e,t,14),r=o(e,t,18),i=o(t,e,9),a=n^r^i;return a<0&&(a+=4294967296),a}function D(e,t){var n=a(e,t,1),r=a(e,t,8),i=s(e,t,7),o=n^r^i;return o<0&&(o+=4294967296),o}function O(e,t){var n=o(e,t,1),r=o(e,t,8),i=c(e,t,7),a=n^r^i;return a<0&&(a+=4294967296),a}function k(e,t){var n=a(e,t,19),r=a(t,e,29),i=s(e,t,6),o=n^r^i;return o<0&&(o+=4294967296),o}function A(e,t){var n=o(e,t,19),r=o(t,e,29),i=c(e,t,6),a=n^r^i;return a<0&&(a+=4294967296),a}})),au=i(((e,t)=>{var n=Ql(),r=iu();function i(){if(!(this instanceof i))return new i;r.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}n.inherits(i,r),t.exports=i,i.blockSize=1024,i.outSize=384,i.hmacStrength=192,i.padLength=128,i.prototype._digest=function(e){return e===`hex`?n.toHex32(this.h.slice(0,12),`big`):n.split32(this.h.slice(0,12),`big`)}})),ou=i((e=>{e.sha1=tu(),e.sha224=ru(),e.sha256=nu(),e.sha384=au(),e.sha512=iu()})),su=i((e=>{var t=Ql(),n=$l(),r=t.rotl32,i=t.sum32,a=t.sum32_3,o=t.sum32_4,s=n.BlockHash;function c(){if(!(this instanceof c))return new c;s.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian=`little`}t.inherits(c,s),e.ripemd160=c,c.blockSize=512,c.outSize=160,c.hmacStrength=192,c.padLength=64,c.prototype._update=function(e,t){for(var n=this.h[0],s=this.h[1],c=this.h[2],g=this.h[3],_=this.h[4],v=n,y=s,b=c,x=g,S=_,C=0;C<80;C++){var w=i(r(o(n,l(C,s,c,g),e[f[C]+t],u(C)),m[C]),_);n=_,_=g,g=r(c,10),c=s,s=w,w=i(r(o(v,l(79-C,y,b,x),e[p[C]+t],d(C)),h[C]),S),v=S,S=x,x=r(b,10),b=y,y=w}w=a(this.h[1],c,x),this.h[1]=a(this.h[2],g,S),this.h[2]=a(this.h[3],_,v),this.h[3]=a(this.h[4],n,y),this.h[4]=a(this.h[0],s,b),this.h[0]=w},c.prototype._digest=function(e){return e===`hex`?t.toHex32(this.h,`little`):t.split32(this.h,`little`)};function l(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function u(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function d(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}var f=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],p=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],m=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],h=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]})),cu=i(((e,t)=>{var n=Ql(),r=Hl();function i(e,t,r){if(!(this instanceof i))return new i(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(n.toArray(t,r))}t.exports=i,i.prototype._init=function(e){e.length>this.blockSize&&(e=new this.Hash().update(e).digest()),r(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=new this.Hash().update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=new this.Hash().update(e)},i.prototype.update=function(e,t){return this.inner.update(e,t),this},i.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)}})),lu=i((e=>{var t=e;t.utils=Ql(),t.common=$l(),t.sha=ou(),t.ripemd=su(),t.hmac=cu(),t.sha1=t.sha.sha1,t.sha256=t.sha.sha256,t.sha224=t.sha.sha224,t.sha384=t.sha.sha384,t.sha512=t.sha.sha512,t.ripemd160=t.ripemd.ripemd160})),uu=i(((e,t)=>{t.exports={doubles:{step:4,points:[[`e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a`,`f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821`],[`8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508`,`11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf`],[`175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739`,`d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695`],[`363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640`,`4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9`],[`8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c`,`4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36`],[`723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda`,`96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f`],[`eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa`,`5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999`],[`100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0`,`cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09`],[`e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d`,`9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d`],[`feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d`,`e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088`],[`da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1`,`9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d`],[`53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0`,`5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8`],[`8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047`,`10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a`],[`385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862`,`283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453`],[`6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7`,`7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160`],[`3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd`,`56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0`],[`85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83`,`7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6`],[`948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a`,`53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589`],[`6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8`,`bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17`],[`e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d`,`4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda`],[`e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725`,`7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd`],[`213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754`,`4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2`],[`4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c`,`17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6`],[`fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6`,`6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f`],[`76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39`,`c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01`],[`c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891`,`893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3`],[`d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b`,`febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f`],[`b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03`,`2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7`],[`e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d`,`eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78`],[`a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070`,`7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1`],[`90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4`,`e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150`],[`8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da`,`662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82`],[`e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11`,`1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc`],[`8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e`,`efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b`],[`e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41`,`2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51`],[`b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef`,`67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45`],[`d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8`,`db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120`],[`324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d`,`648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84`],[`4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96`,`35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d`],[`9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd`,`ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d`],[`6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5`,`9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8`],[`a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266`,`40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8`],[`7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71`,`34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac`],[`928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac`,`c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f`],[`85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751`,`1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962`],[`ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e`,`493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907`],[`827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241`,`c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec`],[`eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3`,`be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d`],[`e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f`,`4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414`],[`1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19`,`aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd`],[`146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be`,`b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0`],[`fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9`,`6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811`],[`da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2`,`8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1`],[`a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13`,`7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c`],[`174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c`,`ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73`],[`959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba`,`2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd`],[`d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151`,`e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405`],[`64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073`,`d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589`],[`8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458`,`38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e`],[`13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b`,`69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27`],[`bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366`,`d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1`],[`8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa`,`40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482`],[`8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0`,`620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945`],[`dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787`,`7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573`],[`f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e`,`ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82`]]},naf:{wnd:7,points:[[`f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9`,`388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672`],[`2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4`,`d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6`],[`5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc`,`6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da`],[`acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe`,`cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37`],[`774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb`,`d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b`],[`f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8`,`ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81`],[`d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e`,`581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58`],[`defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34`,`4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77`],[`2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c`,`85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a`],[`352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5`,`321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c`],[`2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f`,`2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67`],[`9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714`,`73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402`],[`daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729`,`a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55`],[`c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db`,`2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482`],[`6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4`,`e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82`],[`1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5`,`b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396`],[`605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479`,`2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49`],[`62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d`,`80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf`],[`80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f`,`1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a`],[`7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb`,`d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7`],[`d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9`,`eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933`],[`49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963`,`758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a`],[`77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74`,`958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6`],[`f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530`,`e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37`],[`463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b`,`5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e`],[`f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247`,`cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6`],[`caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1`,`cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476`],[`2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120`,`4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40`],[`7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435`,`91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61`],[`754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18`,`673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683`],[`e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8`,`59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5`],[`186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb`,`3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b`],[`df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f`,`55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417`],[`5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143`,`efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868`],[`290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba`,`e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a`],[`af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45`,`f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6`],[`766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a`,`744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996`],[`59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e`,`c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e`],[`f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8`,`e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d`],[`7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c`,`30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2`],[`948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519`,`e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e`],[`7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab`,`100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437`],[`3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca`,`ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311`],[`d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf`,`8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4`],[`1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610`,`68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575`],[`733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4`,`f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d`],[`15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c`,`d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d`],[`a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940`,`edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629`],[`e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980`,`a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06`],[`311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3`,`66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374`],[`34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf`,`9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee`],[`f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63`,`4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1`],[`d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448`,`fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b`],[`32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf`,`5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661`],[`7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5`,`8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6`],[`ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6`,`8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e`],[`16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5`,`5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d`],[`eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99`,`f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc`],[`78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51`,`f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4`],[`494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5`,`42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c`],[`a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5`,`204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b`],[`c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997`,`4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913`],[`841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881`,`73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154`],[`5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5`,`39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865`],[`36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66`,`d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc`],[`336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726`,`ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224`],[`8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede`,`6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e`],[`1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94`,`60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6`],[`85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31`,`3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511`],[`29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51`,`b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b`],[`a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252`,`ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2`],[`4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5`,`cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c`],[`d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b`,`6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3`],[`ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4`,`322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d`],[`af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f`,`6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700`],[`e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889`,`2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4`],[`591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246`,`b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196`],[`11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984`,`998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4`],[`3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a`,`b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257`],[`cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030`,`bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13`],[`c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197`,`6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096`],[`c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593`,`c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38`],[`a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef`,`21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f`],[`347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38`,`60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448`],[`da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a`,`49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a`],[`c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111`,`5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4`],[`4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502`,`7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437`],[`3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea`,`be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7`],[`cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26`,`8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d`],[`b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986`,`39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a`],[`d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e`,`62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54`],[`48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4`,`25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77`],[`dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda`,`ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517`],[`6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859`,`cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10`],[`e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f`,`f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125`],[`eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c`,`6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e`],[`13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942`,`fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1`],[`ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a`,`1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2`],[`b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80`,`5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423`],[`ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d`,`438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8`],[`8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1`,`cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758`],[`52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63`,`c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375`],[`e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352`,`6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d`],[`7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193`,`ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec`],[`5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00`,`9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0`],[`32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58`,`ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c`],[`e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7`,`d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4`],[`8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8`,`c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f`],[`4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e`,`67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649`],[`3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d`,`cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826`],[`674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b`,`299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5`],[`d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f`,`f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87`],[`30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6`,`462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b`],[`be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297`,`62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc`],[`93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a`,`7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c`],[`b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c`,`ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f`],[`d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52`,`4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a`],[`d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb`,`bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46`],[`463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065`,`bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f`],[`7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917`,`603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03`],[`74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9`,`cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08`],[`30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3`,`553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8`],[`9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57`,`712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373`],[`176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66`,`ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3`],[`75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8`,`9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8`],[`809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721`,`9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1`],[`1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180`,`4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9`]]}}})),du=i((e=>{var t=e,n=lu(),r=Zl(),i=Wl().assert;function a(e){e.type===`short`?this.curve=new r.short(e):e.type===`edwards`?this.curve=new r.edwards(e):this.curve=new r.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),`Invalid curve`),i(this.g.mul(this.n).isInfinity(),`Invalid curve, G*N != O`)}t.PresetCurve=a;function o(e,n){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:function(){var r=new a(n);return Object.defineProperty(t,e,{configurable:!0,enumerable:!0,value:r}),r}})}o(`p192`,{type:`short`,prime:`p192`,p:`ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff`,a:`ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc`,b:`64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1`,n:`ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831`,hash:n.sha256,gRed:!1,g:[`188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012`,`07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811`]}),o(`p224`,{type:`short`,prime:`p224`,p:`ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001`,a:`ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe`,b:`b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4`,n:`ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d`,hash:n.sha256,gRed:!1,g:[`b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21`,`bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34`]}),o(`p256`,{type:`short`,prime:null,p:`ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff`,a:`ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc`,b:`5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b`,n:`ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551`,hash:n.sha256,gRed:!1,g:[`6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296`,`4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5`]}),o(`p384`,{type:`short`,prime:null,p:`ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff`,a:`ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc`,b:`b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef`,n:`ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973`,hash:n.sha384,gRed:!1,g:[`aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7`,`3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f`]}),o(`p521`,{type:`short`,prime:null,p:`000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff`,a:`000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc`,b:`00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00`,n:`000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409`,hash:n.sha512,gRed:!1,g:[`000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66`,`00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650`]}),o(`curve25519`,{type:`mont`,prime:`p25519`,p:`7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed`,a:`76d06`,b:`1`,n:`1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed`,hash:n.sha256,gRed:!1,g:[`9`]}),o(`ed25519`,{type:`edwards`,prime:`p25519`,p:`7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed`,a:`-1`,c:`1`,d:`52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3`,n:`1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed`,hash:n.sha256,gRed:!1,g:[`216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a`,`6666666666666666666666666666666666666666666666666666666666666658`]});var s;try{s=uu()}catch{s=void 0}o(`secp256k1`,{type:`short`,prime:`k256`,p:`ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f`,a:`0`,b:`7`,n:`ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141`,h:`1`,hash:n.sha256,beta:`7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee`,lambda:`5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72`,basis:[{a:`3086d221a7d46bcde86c90e49284eb15`,b:`-e4437ed6010e88286f547fa90abfe4c3`},{a:`114ca50f7a8e2f3f657c1108d9d44cfd8`,b:`3086d221a7d46bcde86c90e49284eb15`}],gRed:!1,g:[`79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798`,`483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8`,s]})})),fu=i(((e,t)=>{var n=lu(),r=Ul(),i=Hl();function a(e){if(!(this instanceof a))return new a(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=r.toArray(e.entropy,e.entropyEnc||`hex`),n=r.toArray(e.nonce,e.nonceEnc||`hex`),o=r.toArray(e.pers,e.persEnc||`hex`);i(t.length>=this.minEntropy/8,`Not enough entropy. Minimum is: `+this.minEntropy+` bits`),this._init(t,n,o)}t.exports=a,a.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=Array(this.outLen/8),this.V=Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},a.prototype._hmac=function(){return new n.hmac(this.hash,this.K)},a.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},a.prototype.reseed=function(e,t,n,a){typeof t!=`string`&&(a=n,n=t,t=null),e=r.toArray(e,t),n=r.toArray(n,a),i(e.length>=this.minEntropy/8,`Not enough entropy. Minimum is: `+this.minEntropy+` bits`),this._update(e.concat(n||[])),this._reseed=1},a.prototype.generate=function(e,t,n,i){if(this._reseed>this.reseedInterval)throw Error(`Reseed is required`);typeof t!=`string`&&(i=n,n=t,t=null),n&&(n=r.toArray(n,i||`hex`),this._update(n));for(var a=[];a.length<e;)this.V=this._hmac().update(this.V).digest(),a=a.concat(this.V);var o=a.slice(0,e);return this._update(n),this._reseed++,r.encode(o,t)}})),pu=i(((e,t)=>{var n=Vl(),r=Wl().assert;function i(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}t.exports=i,i.fromPublic=function(e,t,n){return t instanceof i?t:new i(e,{pub:t,pubEnc:n})},i.fromPrivate=function(e,t,n){return t instanceof i?t:new i(e,{priv:t,privEnc:n})},i.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:`Invalid public key`}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:`Public key * N != O`}:{result:!1,reason:`Public key is not a point`}},i.prototype.getPublic=function(e,t){return typeof e==`string`&&(t=e,e=null),this.pub||=this.ec.g.mul(this.priv),t?this.pub.encode(t,e):this.pub},i.prototype.getPrivate=function(e){return e===`hex`?this.priv.toString(16,2):this.priv},i.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},i.prototype._importPublic=function(e,t){if(e.x||e.y){this.ec.curve.type===`mont`?r(e.x,`Need x coordinate`):(this.ec.curve.type===`short`||this.ec.curve.type===`edwards`)&&r(e.x&&e.y,`Need both x and y coordinate`),this.pub=this.ec.curve.point(e.x,e.y);return}this.pub=this.ec.curve.decodePoint(e,t)},i.prototype.derive=function(e){return e.validate()||r(e.validate(),`public point not validated`),e.mul(this.priv).getX()},i.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},i.prototype.verify=function(e,t,n){return this.ec.verify(e,t,this,void 0,n)},i.prototype.inspect=function(){return`<Key priv: `+(this.priv&&this.priv.toString(16,2))+` pub: `+(this.pub&&this.pub.inspect())+` >`}})),mu=i(((e,t)=>{var n=Vl(),r=Wl(),i=r.assert;function a(e,t){if(e instanceof a)return e;this._importDER(e,t)||(i(e.r&&e.s,`Signature without r or s`),this.r=new n(e.r,16),this.s=new n(e.s,16),e.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}t.exports=a;function o(){this.place=0}function s(e,t){var n=e[t.place++];if(!(n&128))return n;var r=n&15;if(r===0||r>4||e[t.place]===0)return!1;for(var i=0,a=0,o=t.place;a<r;a++,o++)i<<=8,i|=e[o],i>>>=0;return i<=127?!1:(t.place=o,i)}function c(e){for(var t=0,n=e.length-1;!e[t]&&!(e[t+1]&128)&&t<n;)t++;return t===0?e:e.slice(t)}a.prototype._importDER=function(e,t){e=r.toArray(e,t);var i=new o;if(e[i.place++]!==48)return!1;var a=s(e,i);if(a===!1||a+i.place!==e.length||e[i.place++]!==2)return!1;var c=s(e,i);if(c===!1||e[i.place]&128)return!1;var l=e.slice(i.place,c+i.place);if(i.place+=c,e[i.place++]!==2)return!1;var u=s(e,i);if(u===!1||e.length!==u+i.place||e[i.place]&128)return!1;var d=e.slice(i.place,u+i.place);if(l[0]===0)if(l[1]&128)l=l.slice(1);else return!1;if(d[0]===0)if(d[1]&128)d=d.slice(1);else return!1;return this.r=new n(l),this.s=new n(d),this.recoveryParam=null,!0};function l(e,t){if(t<128){e.push(t);return}var n=1+(Math.log(t)/Math.LN2>>>3);for(e.push(n|128);--n;)e.push(t>>>(n<<3)&255);e.push(t)}a.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(t[0]&128&&(t=[0].concat(t)),n[0]&128&&(n=[0].concat(n)),t=c(t),n=c(n);!n[0]&&!(n[1]&128);)n=n.slice(1);var i=[2];l(i,t.length),i=i.concat(t),i.push(2),l(i,n.length);var a=i.concat(n),o=[48];return l(o,a.length),o=o.concat(a),r.encode(o,e)}})),hu=i(((e,t)=>{var n=Vl(),r=fu(),i=Wl(),a=du(),o=Gl(),s=i.assert,c=pu(),l=mu();function u(e){if(!(this instanceof u))return new u(e);typeof e==`string`&&(s(Object.prototype.hasOwnProperty.call(a,e),`Unknown curve `+e),e=a[e]),e instanceof a.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}t.exports=u,u.prototype.keyPair=function(e){return new c(this,e)},u.prototype.keyFromPrivate=function(e,t){return c.fromPrivate(this,e,t)},u.prototype.keyFromPublic=function(e,t){return c.fromPublic(this,e,t)},u.prototype.genKeyPair=function(e){e||={};for(var t=new r({hash:this.hash,pers:e.pers,persEnc:e.persEnc||`utf8`,entropy:e.entropy||o(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||`utf8`,nonce:this.n.toArray()}),i=this.n.byteLength(),a=this.n.sub(new n(2));;){var s=new n(t.generate(i));if(!(s.cmp(a)>0))return s.iaddn(1),this.keyFromPrivate(s)}},u.prototype._truncateToN=function(e,t,r){var i;if(n.isBN(e)||typeof e==`number`)e=new n(e,16),i=e.byteLength();else if(typeof e==`object`)i=e.length,e=new n(e,16);else{var a=e.toString();i=a.length+1>>>1,e=new n(a,16)}typeof r!=`number`&&(r=i*8);var o=r-this.n.bitLength();return o>0&&(e=e.ushrn(o)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},u.prototype.sign=function(e,t,i,a){if(typeof i==`object`&&(a=i,i=null),a||={},typeof e!=`string`&&typeof e!=`number`&&!n.isBN(e)){s(typeof e==`object`&&e&&typeof e.length==`number`,`Expected message to be an array-like, a hex string, or a BN instance`),s(e.length>>>0===e.length);for(var o=0;o<e.length;o++)s((e[o]&255)===e[o])}t=this.keyFromPrivate(t,i),e=this._truncateToN(e,!1,a.msgBitLength),s(!e.isNeg(),`Can not sign a negative message`);var c=this.n.byteLength(),u=t.getPrivate().toArray(`be`,c),d=e.toArray(`be`,c);s(new n(d).eq(e),`Can not sign message`);for(var f=new r({hash:this.hash,entropy:u,nonce:d,pers:a.pers,persEnc:a.persEnc||`utf8`}),p=this.n.sub(new n(1)),m=0;;m++){var h=a.k?a.k(m):new n(f.generate(this.n.byteLength()));if(h=this._truncateToN(h,!0),!(h.cmpn(1)<=0||h.cmp(p)>=0)){var g=this.g.mul(h);if(!g.isInfinity()){var _=g.getX(),v=_.umod(this.n);if(v.cmpn(0)!==0){var y=h.invm(this.n).mul(v.mul(t.getPrivate()).iadd(e));if(y=y.umod(this.n),y.cmpn(0)!==0){var b=!!g.getY().isOdd()|(_.cmp(v)===0?0:2);return a.canonical&&y.cmp(this.nh)>0&&(y=this.n.sub(y),b^=1),new l({r:v,s:y,recoveryParam:b})}}}}}},u.prototype.verify=function(e,t,n,r,i){i||={},e=this._truncateToN(e,!1,i.msgBitLength),n=this.keyFromPublic(n,r),t=new l(t,`hex`);var a=t.r,o=t.s;if(a.cmpn(1)<0||a.cmp(this.n)>=0||o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var s=o.invm(this.n),c=s.mul(e).umod(this.n),u=s.mul(a).umod(this.n),d;return this.curve._maxwellTrick?(d=this.g.jmulAdd(c,n.getPublic(),u),d.isInfinity()?!1:d.eqXToP(a)):(d=this.g.mulAdd(c,n.getPublic(),u),d.isInfinity()?!1:d.getX().umod(this.n).cmp(a)===0)},u.prototype.recoverPubKey=function(e,t,r,i){s((3&r)===r,`The recovery param is more than two bits`),t=new l(t,i);var a=this.n,o=new n(e),c=t.r,u=t.s,d=r&1,f=r>>1;if(c.cmp(this.curve.p.umod(this.curve.n))>=0&&f)throw Error(`Unable to find sencond key candinate`);c=f?this.curve.pointFromX(c.add(this.curve.n),d):this.curve.pointFromX(c,d);var p=t.r.invm(a),m=a.sub(o).mul(p).umod(a),h=u.mul(p).umod(a);return this.g.mulAdd(m,c,h)},u.prototype.getKeyRecoveryParam=function(e,t,n,r){if(t=new l(t,r),t.recoveryParam!==null)return t.recoveryParam;for(var i=0;i<4;i++){var a;try{a=this.recoverPubKey(e,t,i)}catch{continue}if(a.eq(n))return i}throw Error(`Unable to find valid recovery factor`)}})),gu=i(((e,t)=>{var n=Wl(),r=n.assert,i=n.parseBytes,a=n.cachedProperty;function o(e,t){this.eddsa=e,this._secret=i(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=i(t.pub)}o.fromPublic=function(e,t){return t instanceof o?t:new o(e,{pub:t})},o.fromSecret=function(e,t){return t instanceof o?t:new o(e,{secret:t})},o.prototype.secret=function(){return this._secret},a(o,`pubBytes`,function(){return this.eddsa.encodePoint(this.pub())}),a(o,`pub`,function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),a(o,`privBytes`,function(){var e=this.eddsa,t=this.hash(),n=e.encodingLength-1,r=t.slice(0,e.encodingLength);return r[0]&=248,r[n]&=127,r[n]|=64,r}),a(o,`priv`,function(){return this.eddsa.decodeInt(this.privBytes())}),a(o,`hash`,function(){return this.eddsa.hash().update(this.secret()).digest()}),a(o,`messagePrefix`,function(){return this.hash().slice(this.eddsa.encodingLength)}),o.prototype.sign=function(e){return r(this._secret,`KeyPair can only verify`),this.eddsa.sign(e,this)},o.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},o.prototype.getSecret=function(e){return r(this._secret,`KeyPair is public only`),n.encode(this.secret(),e)},o.prototype.getPublic=function(e){return n.encode(this.pubBytes(),e)},t.exports=o})),_u=i(((e,t)=>{var n=Vl(),r=Wl(),i=r.assert,a=r.cachedProperty,o=r.parseBytes;function s(e,t){this.eddsa=e,typeof t!=`object`&&(t=o(t)),Array.isArray(t)&&(i(t.length===e.encodingLength*2,`Signature has invalid size`),t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),i(t.R&&t.S,`Signature without R or S`),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof n&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}a(s,`S`,function(){return this.eddsa.decodeInt(this.Sencoded())}),a(s,`R`,function(){return this.eddsa.decodePoint(this.Rencoded())}),a(s,`Rencoded`,function(){return this.eddsa.encodePoint(this.R())}),a(s,`Sencoded`,function(){return this.eddsa.encodeInt(this.S())}),s.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},s.prototype.toHex=function(){return r.encode(this.toBytes(),`hex`).toUpperCase()},t.exports=s})),vu=i(((e,t)=>{var n=lu(),r=du(),i=Wl(),a=i.assert,o=i.parseBytes,s=gu(),c=_u();function l(e){if(a(e===`ed25519`,`only tested with ed25519 so far`),!(this instanceof l))return new l(e);e=r[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}t.exports=l,l.prototype.sign=function(e,t){e=o(e);var n=this.keyFromSecret(t),r=this.hashInt(n.messagePrefix(),e),i=this.g.mul(r),a=this.encodePoint(i),s=this.hashInt(a,n.pubBytes(),e).mul(n.priv()),c=r.add(s).umod(this.curve.n);return this.makeSignature({R:i,S:c,Rencoded:a})},l.prototype.verify=function(e,t,n){if(e=o(e),t=this.makeSignature(t),t.S().gte(t.eddsa.curve.n)||t.S().isNeg())return!1;var r=this.keyFromPublic(n),i=this.hashInt(t.Rencoded(),r.pubBytes(),e),a=this.g.mul(t.S());return t.R().add(r.pub().mul(i)).eq(a)},l.prototype.hashInt=function(){for(var e=this.hash(),t=0;t<arguments.length;t++)e.update(arguments[t]);return i.intFromLE(e.digest()).umod(this.curve.n)},l.prototype.keyFromPublic=function(e){return s.fromPublic(this,e)},l.prototype.keyFromSecret=function(e){return s.fromSecret(this,e)},l.prototype.makeSignature=function(e){return e instanceof c?e:new c(this,e)},l.prototype.encodePoint=function(e){var t=e.getY().toArray(`le`,this.encodingLength);return t[this.encodingLength-1]|=e.getX().isOdd()?128:0,t},l.prototype.decodePoint=function(e){e=i.parseBytes(e);var t=e.length-1,n=e.slice(0,t).concat(e[t]&-129),r=(e[t]&128)!=0,a=i.intFromLE(n);return this.curve.pointFromY(a,r)},l.prototype.encodeInt=function(e){return e.toArray(`le`,this.encodingLength)},l.prototype.decodeInt=function(e){return i.intFromLE(e)},l.prototype.isPoint=function(e){return e instanceof this.pointClass}})),yu=i((t=>{var n=t;n.version=(Bl(),e(Tl).default).version,n.utils=Wl(),n.rand=Gl(),n.curve=Zl(),n.curves=du(),n.ec=hu(),n.eddsa=vu()}))(),bu={waku:{publish:`waku_publish`,batchPublish:`waku_batchPublish`,subscribe:`waku_subscribe`,batchSubscribe:`waku_batchSubscribe`,subscription:`waku_subscription`,unsubscribe:`waku_unsubscribe`,batchUnsubscribe:`waku_batchUnsubscribe`,batchFetchMessages:`waku_batchFetchMessages`},irn:{publish:`irn_publish`,batchPublish:`irn_batchPublish`,subscribe:`irn_subscribe`,batchSubscribe:`irn_batchSubscribe`,subscription:`irn_subscription`,unsubscribe:`irn_unsubscribe`,batchUnsubscribe:`irn_batchUnsubscribe`,batchFetchMessages:`irn_batchFetchMessages`},iridium:{publish:`iridium_publish`,batchPublish:`iridium_batchPublish`,subscribe:`iridium_subscribe`,batchSubscribe:`iridium_batchSubscribe`,subscription:`iridium_subscription`,unsubscribe:`iridium_unsubscribe`,batchUnsubscribe:`iridium_batchUnsubscribe`,batchFetchMessages:`iridium_batchFetchMessages`}},xu=i(((e,t)=>{t.exports=function(){throw Error(`ws does not work in the browser. Browser clients must use the native WebSocket object`)}})),Su=()=>typeof WebSocket<`u`?WebSocket:typeof global<`u`&&typeof global.WebSocket<`u`?global.WebSocket:typeof window<`u`&&typeof window.WebSocket<`u`?window.WebSocket:typeof self<`u`&&typeof self.WebSocket<`u`?self.WebSocket:xu(),Cu=()=>typeof WebSocket<`u`||typeof global<`u`&&typeof global.WebSocket<`u`||typeof window<`u`&&typeof window.WebSocket<`u`||typeof self<`u`&&typeof self.WebSocket<`u`,wu=e=>e.split(`?`)[0],Tu=10,Eu=Su(),Du=class{constructor(e){if(this.url=e,this.events=new jt.EventEmitter,this.registering=!1,!m(e))throw Error(`Provided URL is not compatible with WebSocket connection: ${e}`);this.url=e}get connected(){return typeof this.socket<`u`}get connecting(){return this.registering}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 open(e=this.url){await this.register(e)}async close(){return new Promise((e,t)=>{if(typeof this.socket>`u`){t(Error(`Connection already closed`));return}this.socket.onclose=t=>{this.onClose(t),e()},this.socket.close()})}async send(e){typeof this.socket>`u`&&(this.socket=await this.register());try{this.socket.send(f(e))}catch(t){this.onError(e.id,t)}}register(e=this.url){if(!m(e))throw Error(`Provided URL is not compatible with WebSocket connection: ${e}`);if(this.registering){let e=this.events.getMaxListeners();return(this.events.listenerCount(`register_error`)>=e||this.events.listenerCount(`open`)>=e)&&this.events.setMaxListeners(e+1),new Promise((e,t)=>{this.events.once(`register_error`,e=>{this.resetMaxListeners(),t(e)}),this.events.once(`open`,()=>{if(this.resetMaxListeners(),typeof this.socket>`u`)return t(Error(`WebSocket connection is missing or invalid`));e(this.socket)})})}return this.url=e,this.registering=!0,new Promise((t,n)=>{let r=new Eu(e,[],(0,de.isReactNative)()?void 0:{rejectUnauthorized:!h(e)});Cu()?r.onerror=e=>{let t=e;n(this.emitError(t.error))}:r.on(`error`,e=>{n(this.emitError(e))}),r.onopen=()=>{this.onOpen(r),t(r)}})}onOpen(e){e.onmessage=e=>this.onPayload(e),e.onclose=e=>this.onClose(e),this.socket=e,this.registering=!1,this.events.emit(`open`)}onClose(e){this.socket=void 0,this.registering=!1,this.events.emit(`close`,e)}onPayload(e){if(typeof e.data>`u`)return;let t=typeof e.data==`string`?pe(e.data):e.data;this.events.emit(`payload`,t)}onError(e,t){let n=this.parseError(t),r=w(e,n.message||n.toString());this.events.emit(`payload`,r)}parseError(e,t=this.url){return C(e,wu(t),`WS`)}resetMaxListeners(){this.events.getMaxListeners()>Tu&&this.events.setMaxListeners(Tu)}emitError(e){let t=this.parseError(Error(e?.message||`WebSocket connection failed for host: ${wu(this.url)}`));return this.events.emit(`register_error`,t),t}};function Ou(e,{strict:t=!0}={}){return!e||typeof e!=`string`?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith(`0x`)}function ku(e){return Ou(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}var Au=`2.48.8`,ju={getDocsUrl:({docsBaseUrl:e,docsPath:t=``,docsSlug:n})=>t?`${e??`https://viem.sh`}${t}${n?`#${n}`:``}`:void 0,version:`viem@${Au}`},Mu=class e extends Error{constructor(t,n={}){let r=n.cause instanceof e?n.cause.details:n.cause?.message?n.cause.message:n.details,i=n.cause instanceof e&&n.cause.docsPath||n.docsPath,a=ju.getDocsUrl?.({...n,docsPath:i}),o=[t||`An error occurred.`,``,...n.metaMessages?[...n.metaMessages,``]:[],...a?[`Docs: ${a}`]:[],...r?[`Details: ${r}`]:[],...ju.version?[`Version: ${ju.version}`]:[]].join(`
3
3
  `);super(o,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`BaseError`}),this.details=r,this.docsPath=i,this.metaMessages=n.metaMessages,this.name=n.name??this.name,this.shortMessage=t,this.version=Au}walk(e){return Nu(this,e)}};function Nu(e,t){return t?.(e)?e:e&&typeof e==`object`&&`cause`in e&&e.cause!==void 0?Nu(e.cause,t):t?null:e}var Pu=class extends Mu{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:`SizeExceedsPaddingSizeError`})}};function Fu(e,{dir:t,size:n=32}={}){return typeof e==`string`?Iu(e,{dir:t,size:n}):Lu(e,{dir:t,size:n})}function Iu(e,{dir:t,size:n=32}={}){if(n===null)return e;let r=e.replace(`0x`,``);if(r.length>n*2)throw new Pu({size:Math.ceil(r.length/2),targetSize:n,type:`hex`});return`0x${r[t===`right`?`padEnd`:`padStart`](n*2,`0`)}`}function Lu(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new Pu({size:e.length,targetSize:n,type:`bytes`});let r=new Uint8Array(n);for(let i=0;i<n;i++){let a=t===`right`;r[a?i:n-i-1]=e[a?i:e.length-i-1]}return r}var Ru=class extends Mu{constructor({max:e,min:t,signed:n,size:r,value:i}){super(`Number "${i}" is not in safe ${r?`${r*8}-bit ${n?`signed`:`unsigned`} `:``}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:`IntegerOutOfRangeError`})}},zu=class extends Mu{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:`SizeOverflowError`})}};function Bu(e,{size:t}){if(ku(e)>t)throw new zu({givenSize:ku(e),maxSize:t})}var Vu=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function Hu(e,t={}){return typeof e==`number`||typeof e==`bigint`?Gu(e,t):typeof e==`string`?qu(e,t):typeof e==`boolean`?Uu(e,t):Wu(e,t)}function Uu(e,t={}){let n=`0x${Number(e)}`;return typeof t.size==`number`?(Bu(n,{size:t.size}),Fu(n,{size:t.size})):n}function Wu(e,t={}){let n=``;for(let t=0;t<e.length;t++)n+=Vu[e[t]];let r=`0x${n}`;return typeof t.size==`number`?(Bu(r,{size:t.size}),Fu(r,{dir:`right`,size:t.size})):r}function Gu(e,t={}){let{signed:n,size:r}=t,i=BigInt(e),a;r?a=n?(1n<<BigInt(r)*8n-1n)-1n:2n**(BigInt(r)*8n)-1n:typeof e==`number`&&(a=BigInt(2**53-1));let o=typeof a==`bigint`&&n?-a-1n:0;if(a&&i>a||i<o){let t=typeof e==`bigint`?`n`:``;throw new Ru({max:a?`${a}${t}`:void 0,min:`${o}${t}`,signed:n,size:r,value:`${e}${t}`})}let s=`0x${(n&&i<0?(1n<<BigInt(r*8))+BigInt(i):i).toString(16)}`;return r?Fu(s,{size:r}):s}var Ku=new TextEncoder;function qu(e,t={}){return Wu(Ku.encode(e),t)}var Ju=class extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){let t=super.get(e);return super.has(e)&&(super.delete(e),super.set(e,t)),t}set(e,t){if(super.has(e)&&super.delete(e),super.set(e,t),this.maxSize&&this.size>this.maxSize){let e=super.keys().next().value;e!==void 0&&super.delete(e)}return this}},Yu=(e,t,n)=>JSON.stringify(e,(e,n)=>{let r=typeof n==`bigint`?n.toString():n;return typeof t==`function`?t(e,r):r},n),Xu={ether:-9,wei:9};function Zu(e,t=`wei`){return re(e,Xu[t])}var Qu=e=>{try{let t=new URL(e);return!t.username&&!t.password?e:(t.username=``,t.password=``,t.toString())}catch{return e}},$u=class extends Mu{constructor({body:e,cause:t,details:n,headers:r,status:i,url:a}){super(`HTTP request failed.`,{cause:t,details:n,metaMessages:[i&&`Status: ${i}`,`URL: ${Qu(a)}`,e&&`Request body: ${Yu(e)}`].filter(Boolean),name:`HttpRequestError`}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=e,this.headers=r,this.status=i,this.url=a}},ed=class extends Mu{constructor({body:e,error:t,url:n}){super(`RPC Request failed.`,{cause:t,details:t.message,metaMessages:[`URL: ${Qu(n)}`,`Request body: ${Yu(e)}`],name:`RpcRequestError`}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=t.code,this.data=t.data,this.url=n}},td=class extends Mu{constructor({body:e,url:t}){super(`The request took too long to respond.`,{details:`The request timed out.`,metaMessages:[`URL: ${Qu(t)}`,`Request body: ${Yu(e)}`],name:`TimeoutError`}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.url=t}},nd=-1,rd=class extends Mu{constructor(e,{code:t,docsPath:n,metaMessages:r,name:i,shortMessage:a}){super(a,{cause:e,docsPath:n,metaMessages:r||e?.metaMessages,name:i||`RpcError`}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=i||e.name,this.code=e instanceof ed?e.code:t??nd}},id=class extends rd{constructor(e,t){super(e,t),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t.data}},ad=class e extends rd{constructor(t){super(t,{code:e.code,name:`ParseRpcError`,shortMessage:`Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.`})}};Object.defineProperty(ad,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});var od=class e extends rd{constructor(t){super(t,{code:e.code,name:`InvalidRequestRpcError`,shortMessage:`JSON is not a valid request object.`})}};Object.defineProperty(od,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});var sd=class e extends rd{constructor(t,{method:n}={}){super(t,{code:e.code,name:`MethodNotFoundRpcError`,shortMessage:`The method${n?` "${n}"`:``} does not exist / is not available.`})}};Object.defineProperty(sd,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});var cd=class e extends rd{constructor(t){super(t,{code:e.code,name:`InvalidParamsRpcError`,shortMessage:[`Invalid parameters were provided to the RPC method.`,`Double check you have provided the correct parameters.`].join(`
4
4
  `)})}};Object.defineProperty(cd,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});var ld=class e extends rd{constructor(t){super(t,{code:e.code,name:`InternalRpcError`,shortMessage:`An internal error was received.`})}};Object.defineProperty(ld,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});var ud=class e extends rd{constructor(t){super(t,{code:e.code,name:`InvalidInputRpcError`,shortMessage:[`Missing or invalid parameters.`,`Double check you have provided the correct parameters.`].join(`
@@ -25,4 +25,4 @@ ${e.length}`,n=new TextEncoder().encode(t+e);return`0x`+Buffer.from($F(n)).toStr
25
25
  Required: ${o.toString()}
26
26
  Approved: ${s.toString()}`)),Object.keys(t).forEach(e=>{if(!e.includes(`:`)||r)return;let i=sz(t[e].accounts);i.includes(e)||(r=Q(`NON_CONFORMING_NAMESPACES`,`${n} namespaces accounts don't satisfy namespace accounts for ${e}
27
27
  Required: ${e}
28
- Approved: ${i.toString()}`))}),o.forEach(e=>{r||(VP(i[e].methods,a[e].methods)?VP(i[e].events,a[e].events)||(r=Q(`NON_CONFORMING_NAMESPACES`,`${n} namespaces events don't satisfy namespace events for ${e}`)):r=Q(`NON_CONFORMING_NAMESPACES`,`${n} namespaces methods don't satisfy namespace methods for ${e}`))}),r}function Zz(e){let t={};return Object.keys(e).forEach(n=>{var r;n.includes(`:`)?t[n]=e[n]:(r=e[n].chains)==null||r.forEach(r=>{t[r]={methods:e[n].methods,events:e[n].events}})}),t}function Qz(e){return[...new Set(e.map(e=>e.includes(`:`)?e.split(`:`)[0]:e))]}function $z(e){let t={};return Object.keys(e).forEach(n=>{n.includes(`:`)?t[n]=e[n]:sz(e[n].accounts)?.forEach(r=>{t[r]={accounts:e[n].accounts.filter(e=>e.includes(`${r}:`)),methods:e[n].methods,events:e[n].events}})}),t}function eB(e,t){return Sz(e,!1)&&e<=t.max&&e>=t.min}function tB(){let e=NP();return new Promise(t=>{switch(e){case DP.browser:t(nB());break;case DP.reactNative:t(rB());break;case DP.node:t(iB());break;default:t(!0)}})}function nB(){return MP()&&navigator?.onLine}async function rB(){return kP()&&typeof global<`u`&&global!=null&&global.NetInfo?(await(global==null?void 0:global.NetInfo.fetch()))?.isConnected:!0}function iB(){return!0}function aB(e){switch(NP()){case DP.browser:oB(e);break;case DP.reactNative:sB(e);break;case DP.node:break}}function oB(e){!kP()&&MP()&&(window.addEventListener(`online`,()=>e(!0)),window.addEventListener(`offline`,()=>e(!1)))}function sB(e){kP()&&typeof global<`u`&&global!=null&&global.NetInfo&&global?.NetInfo.addEventListener(t=>e(t?.isConnected))}var cB={},lB=class{static get(e){return cB[e]}static set(e,t){cB[e]=t}static delete(e){delete cB[e]}},uB=`core`,dB=`wc@2:${uB}:`,fB={name:uB,logger:`error`},pB={database:`:memory:`},mB=`crypto`,hB=`client_ed25519_seed`,gB=q.ONE_DAY,_B=`keychain`,vB=`messages`,yB=q.SIX_HOURS,bB=`publisher`,xB=`relayer`,SB={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`},CB={payload:`payload`,connect:`connect`,disconnect:`disconnect`,error:`error`},wB=`2.19.1`,TB={link_mode:`link_mode`,relay:`relay`},EB={inbound:`inbound`,outbound:`outbound`},DB=`WALLETCONNECT_CLIENT_ID`,OB={created:`subscription_created`,deleted:`subscription_deleted`,expired:`subscription_expired`,disabled:`subscription_disabled`,sync:`subscription_sync`,resubscribed:`subscription_resubscribed`};q.THIRTY_DAYS;var kB=`subscription`;q.FIVE_SECONDS*1e3;var AB=`pairing`;q.THIRTY_DAYS;var jB={wc_pairingDelete:{req:{ttl:q.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:q.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:q.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:q.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:q.ONE_DAY,prompt:!1,tag:0},res:{ttl:q.ONE_DAY,prompt:!1,tag:0}}},MB={create:`pairing_create`,expire:`pairing_expire`,delete:`pairing_delete`,ping:`pairing_ping`},NB={created:`history_created`,updated:`history_updated`,deleted:`history_deleted`,sync:`history_sync`},PB=`history`,FB=`expirer`,IB={created:`expirer_created`,deleted:`expirer_deleted`,expired:`expirer_expired`,sync:`expirer_sync`};q.ONE_DAY;var LB=`verify-api`,RB=`https://verify.walletconnect.com`,zB=`https://verify.walletconnect.org`,BB=`${zB}/v3`,VB=[RB,zB],HB=`echo`,UB=`https://echo.walletconnect.com`,WB={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`},GB={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`},KB={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`},qB={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`},JB={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`},YB={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`},XB=.1,ZB=`event-client`,QB=`https://pulse.walletconnect.org/batch`;function $B(e,t){if(e.length>=255)throw TypeError(`Alphabet too long`);for(var n=new Uint8Array(256),r=0;r<n.length;r++)n[r]=255;for(var i=0;i<e.length;i++){var a=e.charAt(i),o=a.charCodeAt(0);if(n[o]!==255)throw TypeError(a+` is ambiguous`);n[o]=i}var s=e.length,c=e.charAt(0),l=Math.log(s)/Math.log(256),u=Math.log(256)/Math.log(s);function d(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw TypeError(`Expected Uint8Array`);if(t.length===0)return``;for(var n=0,r=0,i=0,a=t.length;i!==a&&t[i]===0;)i++,n++;for(var o=(a-i)*u+1>>>0,l=new Uint8Array(o);i!==a;){for(var d=t[i],f=0,p=o-1;(d!==0||f<r)&&p!==-1;p--,f++)d+=256*l[p]>>>0,l[p]=d%s>>>0,d=d/s>>>0;if(d!==0)throw Error(`Non-zero carry`);r=f,i++}for(var m=o-r;m!==o&&l[m]===0;)m++;for(var h=c.repeat(n);m<o;++m)h+=e.charAt(l[m]);return h}function f(e){if(typeof e!=`string`)throw TypeError(`Expected String`);if(e.length===0)return new Uint8Array;var t=0;if(e[t]!==` `){for(var r=0,i=0;e[t]===c;)r++,t++;for(var a=(e.length-t)*l+1>>>0,o=new Uint8Array(a);e[t];){var u=n[e.charCodeAt(t)];if(u===255)return;for(var d=0,f=a-1;(u!==0||d<i)&&f!==-1;f--,d++)u+=s*o[f]>>>0,o[f]=u%256>>>0,u=u/256>>>0;if(u!==0)throw Error(`Non-zero carry`);i=d,t++}if(e[t]!==` `){for(var p=a-i;p!==a&&o[p]===0;)p++;for(var m=new Uint8Array(r+(a-p)),h=r;p!==a;)m[h++]=o[p++];return m}}}function p(e){var n=f(e);if(n)return n;throw Error(`Non-${t} character`)}return{encode:d,decodeUnsafe:f,decode:p}}var eV=$B,tV=e=>{if(e instanceof Uint8Array&&e.constructor.name===`Uint8Array`)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw Error(`Unknown type, must be binary type`)},nV=e=>new TextEncoder().encode(e),rV=e=>new TextDecoder().decode(e),iV=class{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error(`Unknown type, must be binary type`)}},aV=class{constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw Error(`Invalid prefix character`);this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}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 sV(this,e)}},oV=class{constructor(e){this.decoders=e}or(e){return sV(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},sV=(e,t)=>new oV({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),cV=class{constructor(e,t,n,r){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=r,this.encoder=new iV(e,t,n),this.decoder=new aV(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},lV=({name:e,prefix:t,encode:n,decode:r})=>new cV(e,t,n,r),uV=({prefix:e,name:t,alphabet:n})=>{let{encode:r,decode:i}=eV(n,t);return lV({prefix:e,name:t,encode:r,decode:e=>tV(i(e))})},dV=(e,t,n,r)=>{let i={};for(let e=0;e<t.length;++e)i[t[e]]=e;let a=e.length;for(;e[a-1]===`=`;)--a;let o=new Uint8Array(a*n/8|0),s=0,c=0,l=0;for(let t=0;t<a;++t){let a=i[e[t]];if(a===void 0)throw SyntaxError(`Non-${r} character`);c=c<<n|a,s+=n,s>=8&&(s-=8,o[l++]=255&c>>s)}if(s>=n||255&c<<8-s)throw SyntaxError(`Unexpected end of data`);return o},fV=(e,t,n)=>{let r=t[t.length-1]===`=`,i=(1<<n)-1,a=``,o=0,s=0;for(let r=0;r<e.length;++r)for(s=s<<8|e[r],o+=8;o>n;)o-=n,a+=t[i&s>>o];if(o&&(a+=t[i&s<<n-o]),r)for(;a.length*n&7;)a+=`=`;return a},pV=({name:e,prefix:t,bitsPerChar:n,alphabet:r})=>lV({prefix:t,name:e,encode(e){return fV(e,r,n)},decode(t){return dV(t,r,n,e)}}),mV=lV({prefix:`\0`,name:`identity`,encode:e=>rV(e),decode:e=>nV(e)}),hV=Object.freeze({__proto__:null,identity:mV}),gV=pV({prefix:`0`,name:`base2`,alphabet:`01`,bitsPerChar:1}),_V=Object.freeze({__proto__:null,base2:gV}),vV=pV({prefix:`7`,name:`base8`,alphabet:`01234567`,bitsPerChar:3}),yV=Object.freeze({__proto__:null,base8:vV}),bV=uV({prefix:`9`,name:`base10`,alphabet:`0123456789`}),xV=Object.freeze({__proto__:null,base10:bV}),SV=pV({prefix:`f`,name:`base16`,alphabet:`0123456789abcdef`,bitsPerChar:4}),CV=pV({prefix:`F`,name:`base16upper`,alphabet:`0123456789ABCDEF`,bitsPerChar:4}),wV=Object.freeze({__proto__:null,base16:SV,base16upper:CV}),TV=pV({prefix:`b`,name:`base32`,alphabet:`abcdefghijklmnopqrstuvwxyz234567`,bitsPerChar:5}),EV=pV({prefix:`B`,name:`base32upper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`,bitsPerChar:5}),DV=pV({prefix:`c`,name:`base32pad`,alphabet:`abcdefghijklmnopqrstuvwxyz234567=`,bitsPerChar:5}),OV=pV({prefix:`C`,name:`base32padupper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=`,bitsPerChar:5}),kV=pV({prefix:`v`,name:`base32hex`,alphabet:`0123456789abcdefghijklmnopqrstuv`,bitsPerChar:5}),AV=pV({prefix:`V`,name:`base32hexupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV`,bitsPerChar:5}),jV=pV({prefix:`t`,name:`base32hexpad`,alphabet:`0123456789abcdefghijklmnopqrstuv=`,bitsPerChar:5}),MV=pV({prefix:`T`,name:`base32hexpadupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV=`,bitsPerChar:5}),NV=pV({prefix:`h`,name:`base32z`,alphabet:`ybndrfg8ejkmcpqxot1uwisza345h769`,bitsPerChar:5}),PV=Object.freeze({__proto__:null,base32:TV,base32upper:EV,base32pad:DV,base32padupper:OV,base32hex:kV,base32hexupper:AV,base32hexpad:jV,base32hexpadupper:MV,base32z:NV}),FV=uV({prefix:`k`,name:`base36`,alphabet:`0123456789abcdefghijklmnopqrstuvwxyz`}),IV=uV({prefix:`K`,name:`base36upper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ`}),LV=Object.freeze({__proto__:null,base36:FV,base36upper:IV}),RV=uV({name:`base58btc`,prefix:`z`,alphabet:`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`}),zV=uV({name:`base58flickr`,prefix:`Z`,alphabet:`123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ`}),BV=Object.freeze({__proto__:null,base58btc:RV,base58flickr:zV}),VV=pV({prefix:`m`,name:`base64`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,bitsPerChar:6}),HV=pV({prefix:`M`,name:`base64pad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`,bitsPerChar:6}),UV=pV({prefix:`u`,name:`base64url`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,bitsPerChar:6}),WV=pV({prefix:`U`,name:`base64urlpad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=`,bitsPerChar:6}),GV=Object.freeze({__proto__:null,base64:VV,base64pad:HV,base64url:UV,base64urlpad:WV}),KV=Array.from(`🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂`),qV=KV.reduce((e,t,n)=>(e[n]=t,e),[]),JV=KV.reduce((e,t,n)=>(e[t.codePointAt(0)]=n,e),[]);function YV(e){return e.reduce((e,t)=>(e+=qV[t],e),``)}function XV(e){let t=[];for(let n of e){let e=JV[n.codePointAt(0)];if(e===void 0)throw Error(`Non-base256emoji character: ${n}`);t.push(e)}return new Uint8Array(t)}var ZV=lV({prefix:`🚀`,name:`base256emoji`,encode:YV,decode:XV}),QV=Object.freeze({__proto__:null,base256emoji:ZV}),$V=rH,eH=128,tH=-128,nH=2**31;function rH(e,t,n){t||=[],n||=0;for(var r=n;e>=nH;)t[n++]=e&255|eH,e/=128;for(;e&tH;)t[n++]=e&255|eH,e>>>=7;return t[n]=e|0,rH.bytes=n-r+1,t}var iH=sH,aH=128,oH=127;function sH(e,t){var n=0,t=t||0,r=0,i=t,a,o=e.length;do{if(i>=o)throw sH.bytes=0,RangeError(`Could not decode varint`);a=e[i++],n+=r<28?(a&oH)<<r:(a&oH)*2**r,r+=7}while(a>=aH);return sH.bytes=i-t,n}var cH=2**7,lH=2**14,uH=2**21,dH=2**28,fH=2**35,pH=2**42,mH=2**49,hH=2**56,gH=2**63,_H={encode:$V,decode:iH,encodingLength:function(e){return e<cH?1:e<lH?2:e<uH?3:e<dH?4:e<fH?5:e<pH?6:e<mH?7:e<hH?8:e<gH?9:10}},vH=(e,t,n=0)=>(_H.encode(e,t,n),t),yH=e=>_H.encodingLength(e),bH=(e,t)=>{let n=t.byteLength,r=yH(e),i=r+yH(n),a=new Uint8Array(i+n);return vH(e,a,0),vH(n,a,r),a.set(t,i),new xH(e,n,t,a)},xH=class{constructor(e,t,n,r){this.code=e,this.size=t,this.digest=n,this.bytes=r}},SH=({name:e,code:t,encode:n})=>new CH(e,t,n),CH=class{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?bH(this.code,t):t.then(e=>bH(this.code,e))}else throw Error(`Unknown type, must be binary type`)}},wH=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),TH=SH({name:`sha2-256`,code:18,encode:wH(`SHA-256`)}),EH=SH({name:`sha2-512`,code:19,encode:wH(`SHA-512`)}),DH=Object.freeze({__proto__:null,sha256:TH,sha512:EH}),OH=0,kH=`identity`,AH=tV,jH=Object.freeze({__proto__:null,identity:{code:OH,name:kH,encode:AH,digest:e=>bH(OH,AH(e))}});new TextEncoder,new TextDecoder;var MH={...hV,..._V,...yV,...xV,...wV,...PV,...LV,...BV,...GV,...QV};({...DH,...jH});function NH(e=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e)}function PH(e,t,n,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:n},decoder:{decode:r}}}var FH=PH(`utf8`,`u`,e=>`u`+new TextDecoder(`utf8`).decode(e),e=>new TextEncoder().encode(e.substring(1))),IH=PH(`ascii`,`a`,e=>{let t=`a`;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t},e=>{e=e.substring(1);let t=NH(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}),LH={utf8:FH,"utf-8":FH,hex:MH.base16,latin1:IH,ascii:IH,binary:IH,...MH};function RH(e,t=`utf8`){let n=LH[t];if(!n)throw Error(`Unsupported encoding "${t}"`);return(t===`utf8`||t===`utf-8`)&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e,`utf8`):n.decoder.decode(`${n.prefix}${e}`)}var zH=Object.defineProperty,BH=(e,t,n)=>t in e?zH(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,VH=(e,t,n)=>BH(e,typeof t==`symbol`?t:t+``,n),HH=class{constructor(e,t){this.core=e,this.logger=t,VH(this,`keychain`,new Map),VH(this,`name`,_B),VH(this,`version`,`0.3`),VH(this,`initialized`,!1),VH(this,`storagePrefix`,dB),VH(this,`init`,async()=>{if(!this.initialized){let e=await this.getKeyChain();typeof e<`u`&&(this.keychain=e),this.initialized=!0}}),VH(this,`has`,e=>(this.isInitialized(),this.keychain.has(e))),VH(this,`set`,async(e,t)=>{this.isInitialized(),this.keychain.set(e,t),await this.persist()}),VH(this,`get`,e=>{this.isInitialized();let t=this.keychain.get(e);if(typeof t>`u`){let{message:t}=Q(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}),VH(this,`del`,async e=>{this.isInitialized(),this.keychain.delete(e),await this.persist()}),this.core=e,this.logger=g(t,this.name)}get context(){return D(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,HP(e))}async getKeyChain(){let e=await this.core.storage.getItem(this.storageKey);return typeof e<`u`?UP(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}},UH=Object.defineProperty,WH=(e,t,n)=>t in e?UH(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,GH=(e,t,n)=>WH(e,typeof t==`symbol`?t:t+``,n),KH=class{constructor(e,t,n){this.core=e,this.logger=t,GH(this,`name`,mB),GH(this,`keychain`),GH(this,`randomSessionIdentifier`,NR()),GH(this,`initialized`,!1),GH(this,`init`,async()=>{this.initialized||=(await this.keychain.init(),!0)}),GH(this,`hasKeys`,e=>(this.isInitialized(),this.keychain.has(e))),GH(this,`getClientId`,async()=>(this.isInitialized(),as(ds(await this.getClientSeed()).publicKey))),GH(this,`generateKeyPair`,()=>{this.isInitialized();let e=MR();return this.setPrivateKey(e.publicKey,e.privateKey)}),GH(this,`signJWT`,async e=>{this.isInitialized();let t=ds(await this.getClientSeed()),n=this.randomSessionIdentifier;return await fs(n,e,gB,t)}),GH(this,`generateSharedKey`,(e,t,n)=>{this.isInitialized();let r=PR(this.getPrivateKey(e),t);return this.setSymKey(r,n)}),GH(this,`setSymKey`,async(e,t)=>{this.isInitialized();let n=t||FR(e);return await this.keychain.set(n,e),n}),GH(this,`deleteKeyPair`,async e=>{this.isInitialized(),await this.keychain.del(e)}),GH(this,`deleteSymKey`,async e=>{this.isInitialized(),await this.keychain.del(e)}),GH(this,`encode`,async(e,t,n)=>{this.isInitialized();let r=KR(n),i=f(t);if(JR(r))return VR(i,n?.encoding);if(qR(r)){let t=r.senderPublicKey,n=r.receiverPublicKey;e=await this.generateSharedKey(t,n)}let a=this.getSymKey(e),{type:o,senderPublicKey:s}=r;return zR({type:o,symKey:a,message:i,senderPublicKey:s,encoding:n?.encoding})}),GH(this,`decode`,async(e,t,n)=>{this.isInitialized();let r=GR(t,n);if(JR(r))return pe(HR(t,n?.encoding));if(qR(r)){let t=r.receiverPublicKey,n=r.senderPublicKey;e=await this.generateSharedKey(t,n)}try{return pe(BR({symKey:this.getSymKey(e),encoded:t,encoding:n?.encoding}))}catch(t){this.logger.error(`Failed to decode message from topic: '${e}', clientId: '${await this.getClientId()}'`),this.logger.error(t)}}),GH(this,`getPayloadType`,(e,t=TR)=>RR(WR({encoded:e,encoding:t}).type)),GH(this,`getPayloadSenderPublicKey`,(e,t=TR)=>{let n=WR({encoded:e,encoding:t});return n.senderPublicKey?wl(n.senderPublicKey,wR):void 0}),this.core=e,this.logger=g(t,this.name),this.keychain=n||new HH(this.core,this.logger)}get context(){return D(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(hB)}catch{e=NR(),await this.keychain.set(hB,e)}return RH(e,`base16`)}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}},qH=Object.defineProperty,JH=Object.defineProperties,YH=Object.getOwnPropertyDescriptors,XH=Object.getOwnPropertySymbols,ZH=Object.prototype.hasOwnProperty,QH=Object.prototype.propertyIsEnumerable,$H=(e,t,n)=>t in e?qH(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,eU=(e,t)=>{for(var n in t||={})ZH.call(t,n)&&$H(e,n,t[n]);if(XH)for(var n of XH(t))QH.call(t,n)&&$H(e,n,t[n]);return e},tU=(e,t)=>JH(e,YH(t)),nU=(e,t,n)=>$H(e,typeof t==`symbol`?t:t+``,n),rU=class extends Hn{constructor(e,t){super(e,t),this.logger=e,this.core=t,nU(this,`messages`,new Map),nU(this,`messagesWithoutClientAck`,new Map),nU(this,`name`,vB),nU(this,`version`,`0.3`),nU(this,`initialized`,!1),nU(this,`storagePrefix`,dB),nU(this,`init`,async()=>{if(!this.initialized){this.logger.trace(`Initialized`);try{let e=await this.getRelayerMessages();typeof e<`u`&&(this.messages=e);let t=await this.getRelayerMessagesWithoutClientAck();typeof t<`u`&&(this.messagesWithoutClientAck=t),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:`method`,method:`restore`,size:this.messages.size})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}finally{this.initialized=!0}}}),nU(this,`set`,async(e,t,n)=>{this.isInitialized();let r=IR(t),i=this.messages.get(e);if(typeof i>`u`&&(i={}),typeof i[r]<`u`)return r;if(i[r]=t,this.messages.set(e,i),n===EB.inbound){let n=this.messagesWithoutClientAck.get(e)||{};this.messagesWithoutClientAck.set(e,tU(eU({},n),{[r]:t}))}return await this.persist(),r}),nU(this,`get`,e=>{this.isInitialized();let t=this.messages.get(e);return typeof t>`u`&&(t={}),t}),nU(this,`getWithoutAck`,e=>{this.isInitialized();let t={};for(let n of e){let e=this.messagesWithoutClientAck.get(n)||{};t[n]=Object.values(e)}return t}),nU(this,`has`,(e,t)=>(this.isInitialized(),typeof this.get(e)[IR(t)]<`u`)),nU(this,`ack`,async(e,t)=>{this.isInitialized();let n=this.messagesWithoutClientAck.get(e);if(typeof n>`u`)return;let r=IR(t);delete n[r],Object.keys(n).length===0?this.messagesWithoutClientAck.delete(e):this.messagesWithoutClientAck.set(e,n),await this.persist()}),nU(this,`del`,async e=>{this.isInitialized(),this.messages.delete(e),this.messagesWithoutClientAck.delete(e),await this.persist()}),this.logger=g(e,this.name),this.core=t}get context(){return D(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,HP(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,HP(e))}async getRelayerMessages(){let e=await this.core.storage.getItem(this.storageKey);return typeof e<`u`?UP(e):void 0}async getRelayerMessagesWithoutClientAck(){let e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return typeof e<`u`?UP(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}},iU=Object.defineProperty,aU=Object.defineProperties,oU=Object.getOwnPropertyDescriptors,sU=Object.getOwnPropertySymbols,cU=Object.prototype.hasOwnProperty,lU=Object.prototype.propertyIsEnumerable,uU=(e,t,n)=>t in e?iU(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dU=(e,t)=>{for(var n in t||={})cU.call(t,n)&&uU(e,n,t[n]);if(sU)for(var n of sU(t))lU.call(t,n)&&uU(e,n,t[n]);return e},fU=(e,t)=>aU(e,oU(t)),pU=(e,t,n)=>uU(e,typeof t==`symbol`?t:t+``,n),mU=class extends Un{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,pU(this,`events`,new jt.EventEmitter),pU(this,`name`,bB),pU(this,`queue`,new Map),pU(this,`publishTimeout`,(0,q.toMiliseconds)(q.ONE_MINUTE)),pU(this,`initialPublishTimeout`,(0,q.toMiliseconds)(q.ONE_SECOND*15)),pU(this,`needsTransportRestart`,!1),pU(this,`publish`,async(e,t,n)=>{var r;this.logger.debug(`Publishing Payload`),this.logger.trace({type:`method`,method:`publish`,params:{topic:e,message:t,opts:n}});let i=n?.ttl||yB,a=$R(n),o=n?.prompt||!1,s=n?.tag||0,c=n?.id||W().toString(),l={topic:e,message:t,opts:{ttl:i,relay:a,prompt:o,tag:s,id:c,attestation:n?.attestation,tvf:n?.tvf}},u=`Failed to publish payload, please try again. id:${c} tag:${s}`;try{let r=new Promise(async r=>{let a=({id:e})=>{l.opts.id===e&&(this.removeRequestFromQueue(e),this.relayer.events.removeListener(SB.publish,a),r(l))};this.relayer.events.on(SB.publish,a);let u=GP(new Promise((r,a)=>{this.rpcPublish({topic:e,message:t,ttl:i,prompt:o,tag:s,id:c,attestation:n?.attestation,tvf:n?.tvf}).then(r).catch(e=>{this.logger.warn(e,e?.message),a(e)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${c} tag:${s}`);try{await u,this.events.removeListener(SB.publish,a)}catch(e){this.queue.set(c,fU(dU({},l),{attempt:1})),this.logger.warn(e,e?.message)}});this.logger.trace({type:`method`,method:`publish`,params:{id:c,topic:e,message:t,opts:n}}),await GP(r,this.publishTimeout,u)}catch(e){if(this.logger.debug(`Failed to Publish Payload`),this.logger.error(e),(r=n?.internal)!=null&&r.throwOnFailedPublish)throw e}finally{this.queue.delete(c)}}),pU(this,`on`,(e,t)=>{this.events.on(e,t)}),pU(this,`once`,(e,t)=>{this.events.once(e,t)}),pU(this,`off`,(e,t)=>{this.events.off(e,t)}),pU(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.relayer=e,this.logger=g(t,this.name),this.registerEventListeners()}get context(){return D(this.logger)}async rpcPublish(e){var t,n;let{topic:r,message:i,ttl:a=yB,prompt:o,tag:s,id:c,attestation:l,tvf:u}=e,d={method:ez($R().protocol).publish,params:dU({topic:r,message:i,ttl:a,prompt:o,tag:s,attestation:l},u),id:c};bz(d.params?.prompt)&&((t=d.params)==null||delete t.prompt),bz(d.params?.tag)&&((n=d.params)==null||delete n.tag),this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`message`,direction:`outgoing`,request:d});let f=await this.relayer.request(d);return this.relayer.events.emit(SB.publish,e),this.logger.debug(`Successfully Published Payload`),f}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,t)=>{let n=e.attempt+1;this.queue.set(t,fU(dU({},e),{attempt:n}));let{topic:r,message:i,opts:a,attestation:o}=e;this.logger.warn({},`Publisher: queue->publishing: ${e.opts.id}, tag: ${e.opts.tag}, attempt: ${n}`),await this.rpcPublish(fU(dU({},e),{topic:r,message:i,ttl:a.ttl,prompt:a.prompt,tag:a.tag,id:a.id,attestation:o,tvf:a.tvf})),this.logger.warn({},`Publisher: queue->published: ${e.opts.id}`)})}registerEventListeners(){this.relayer.core.heartbeat.on(Pt.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(SB.connection_stalled);return}this.checkQueue()}),this.relayer.on(SB.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}},hU=Object.defineProperty,gU=(e,t,n)=>t in e?hU(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_U=(e,t,n)=>gU(e,typeof t==`symbol`?t:t+``,n),vU=class{constructor(){_U(this,`map`,new Map),_U(this,`set`,(e,t)=>{let n=this.get(e);this.exists(e,t)||this.map.set(e,[...n,t])}),_U(this,`get`,e=>this.map.get(e)||[]),_U(this,`exists`,(e,t)=>this.get(e).includes(t)),_U(this,`delete`,(e,t)=>{if(typeof t>`u`){this.map.delete(e);return}if(!this.map.has(e))return;let n=this.get(e);if(!this.exists(e,t))return;let r=n.filter(e=>e!==t);if(!r.length){this.map.delete(e);return}this.map.set(e,r)}),_U(this,`clear`,()=>{this.map.clear()})}get topics(){return Array.from(this.map.keys())}},yU=Object.defineProperty,bU=Object.defineProperties,xU=Object.getOwnPropertyDescriptors,SU=Object.getOwnPropertySymbols,CU=Object.prototype.hasOwnProperty,wU=Object.prototype.propertyIsEnumerable,TU=(e,t,n)=>t in e?yU(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,EU=(e,t)=>{for(var n in t||={})CU.call(t,n)&&TU(e,n,t[n]);if(SU)for(var n of SU(t))wU.call(t,n)&&TU(e,n,t[n]);return e},DU=(e,t)=>bU(e,xU(t)),OU=(e,t,n)=>TU(e,typeof t==`symbol`?t:t+``,n),kU=class extends Kn{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,OU(this,`subscriptions`,new Map),OU(this,`topicMap`,new vU),OU(this,`events`,new jt.EventEmitter),OU(this,`name`,kB),OU(this,`version`,`0.3`),OU(this,`pending`,new Map),OU(this,`cached`,[]),OU(this,`initialized`,!1),OU(this,`storagePrefix`,dB),OU(this,`subscribeTimeout`,(0,q.toMiliseconds)(q.ONE_MINUTE)),OU(this,`initialSubscribeTimeout`,(0,q.toMiliseconds)(q.ONE_SECOND*15)),OU(this,`clientId`),OU(this,`batchSubscribeTopicsLimit`,500),OU(this,`init`,async()=>{this.initialized||(this.logger.trace(`Initialized`),this.registerEventListeners(),await this.restore()),this.initialized=!0}),OU(this,`subscribe`,async(e,t)=>{this.isInitialized(),this.logger.debug(`Subscribing Topic`),this.logger.trace({type:`method`,method:`subscribe`,params:{topic:e,opts:t}});try{let n=$R(t),r={topic:e,relay:n,transportType:t?.transportType};this.pending.set(e,r);let i=await this.rpcSubscribe(e,n,t);return typeof i==`string`&&(this.onSubscribe(i,r),this.logger.debug(`Successfully Subscribed Topic`),this.logger.trace({type:`method`,method:`subscribe`,params:{topic:e,opts:t}})),i}catch(e){throw this.logger.debug(`Failed to Subscribe Topic`),this.logger.error(e),e}}),OU(this,`unsubscribe`,async(e,t)=>{this.isInitialized(),typeof t?.id<`u`?await this.unsubscribeById(e,t.id,t):await this.unsubscribeByTopic(e,t)}),OU(this,`isSubscribed`,e=>new Promise(t=>{t(this.topicMap.topics.includes(e))})),OU(this,`isKnownTopic`,e=>new Promise(t=>{t(this.topicMap.topics.includes(e)||this.pending.has(e)||this.cached.some(t=>t.topic===e))})),OU(this,`on`,(e,t)=>{this.events.on(e,t)}),OU(this,`once`,(e,t)=>{this.events.once(e,t)}),OU(this,`off`,(e,t)=>{this.events.off(e,t)}),OU(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),OU(this,`start`,async()=>{await this.onConnect()}),OU(this,`stop`,async()=>{await this.onDisconnect()}),OU(this,`restart`,async()=>{await this.restore(),await this.onRestart()}),OU(this,`checkPending`,async()=>{if(this.pending.size===0&&(!this.initialized||!this.relayer.connected))return;let e=[];this.pending.forEach(t=>{e.push(t)}),await this.batchSubscribe(e)}),OU(this,`registerEventListeners`,()=>{this.relayer.core.heartbeat.on(Pt.pulse,async()=>{await this.checkPending()}),this.events.on(OB.created,async e=>{let t=OB.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),await this.persist()}),this.events.on(OB.deleted,async e=>{let t=OB.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),await this.persist()})}),this.relayer=e,this.logger=g(t,this.name),this.clientId=``}get context(){return D(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 n=!1;try{n=this.getSubscription(e).topic===t}catch{}return n}reset(){this.cached=[],this.initialized=!0}onDisable(){this.cached=this.values,this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){let n=this.topicMap.get(e);await Promise.all(n.map(async n=>await this.unsubscribeById(e,n,t)))}async unsubscribeById(e,t,n){this.logger.debug(`Unsubscribing Topic`),this.logger.trace({type:`method`,method:`unsubscribe`,params:{topic:e,id:t,opts:n}});try{let r=$R(n);await this.restartToComplete({topic:e,id:t,relay:r}),await this.rpcUnsubscribe(e,t,r);let i=_z(`USER_DISCONNECTED`,`${this.name}, ${e}`);await this.onUnsubscribe(e,t,i),this.logger.debug(`Successfully Unsubscribed Topic`),this.logger.trace({type:`method`,method:`unsubscribe`,params:{topic:e,id:t,opts:n}})}catch(e){throw this.logger.debug(`Failed to Unsubscribe Topic`),this.logger.error(e),e}}async rpcSubscribe(e,t,n){(!n||n?.transportType===TB.relay)&&await this.restartToComplete({topic:e,id:e,relay:t});let r={method:ez(t.protocol).subscribe,params:{topic:e}};this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:r});let i=n?.internal?.throwOnFailedPublish;try{let t=await this.getSubscriptionId(e);if(n?.transportType===TB.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(r).catch(e=>this.logger.warn(e))},(0,q.toMiliseconds)(q.ONE_SECOND)),t;let a=await GP(new Promise(async t=>{let n=r=>{r.topic===e&&(this.events.removeListener(OB.created,n),t(r.id))};this.events.on(OB.created,n);try{let i=await GP(new Promise((e,t)=>{this.relayer.request(r).catch(e=>{this.logger.warn(e,e?.message),t(e)}).then(e)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener(OB.created,n),t(i)}catch{}}),this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!a&&i)throw Error(`Subscribing to ${e} failed, please try again`);return a?t:null}catch(e){if(this.logger.debug(`Outgoing Relay Subscribe Payload stalled`),this.relayer.events.emit(SB.connection_stalled),i)throw e}return null}async rpcBatchSubscribe(e){if(!e.length)return;let t=e[0].relay,n={method:ez(t.protocol).batchSubscribe,params:{topics:e.map(e=>e.topic)}};this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:n});try{await await GP(new Promise(e=>{this.relayer.request(n).catch(e=>this.logger.warn(e)).then(e)}),this.subscribeTimeout,`rpcBatchSubscribe failed, please try again`)}catch{this.relayer.events.emit(SB.connection_stalled)}}async rpcBatchFetchMessages(e){if(!e.length)return;let t=e[0].relay,n={method:ez(t.protocol).batchFetchMessages,params:{topics:e.map(e=>e.topic)}};this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:n});let r;try{r=await await GP(new Promise((e,t)=>{this.relayer.request(n).catch(e=>{this.logger.warn(e),t(e)}).then(e)}),this.subscribeTimeout,`rpcBatchFetchMessages failed, please try again`)}catch{this.relayer.events.emit(SB.connection_stalled)}return r}rpcUnsubscribe(e,t,n){let r={method:ez(n.protocol).unsubscribe,params:{topic:e,id:t}};return this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:r}),this.relayer.request(r)}onSubscribe(e,t){this.setSubscription(e,DU(EU({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(e=>{this.setSubscription(e.id,EU({},e)),this.pending.delete(e.topic)})}async onUnsubscribe(e,t,n){this.events.removeAllListeners(t),this.hasSubscription(t,e)&&this.deleteSubscription(t,n),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,EU({},t)),this.topicMap.set(t.topic,e),this.events.emit(OB.created,t)}getSubscription(e){this.logger.debug(`Getting subscription`),this.logger.trace({type:`method`,method:`getSubscription`,id:e});let t=this.subscriptions.get(e);if(!t){let{message:t}=Q(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}deleteSubscription(e,t){this.logger.debug(`Deleting subscription`),this.logger.trace({type:`method`,method:`deleteSubscription`,id:e,reason:t});let n=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(n.topic,e),this.events.emit(OB.deleted,DU(EU({},n),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(OB.sync)}async onRestart(){if(this.cached.length){let e=[...this.cached],t=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let n=0;n<t;n++){let t=e.splice(0,this.batchSubscribeTopicsLimit);await this.batchSubscribe(t)}}this.events.emit(OB.resubscribed)}async restore(){try{let e=await this.getRelayerSubscriptions();if(typeof e>`u`||!e.length)return;if(this.subscriptions.size){let{message:e}=Q(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),Error(e)}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 e=>DU(EU({},e),{id:await this.getSubscriptionId(e.topic)})))))}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);let t=await this.rpcBatchFetchMessages(e);t&&t.messages&&(await dF((0,q.toMiliseconds)(q.ONE_SECOND)),await this.relayer.handleBatchMessageEvents(t.messages))}async onConnect(){await this.restart(),this.reset()}onDisconnect(){this.onDisable()}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}async restartToComplete(e){!this.relayer.connected&&!this.relayer.connecting&&(this.cached.push(e),await this.relayer.transportOpen())}async getClientId(){return this.clientId||=await this.relayer.core.crypto.getClientId(),this.clientId}async getSubscriptionId(e){return IR(e+await this.getClientId())}},AU=Object.defineProperty,jU=Object.getOwnPropertySymbols,MU=Object.prototype.hasOwnProperty,NU=Object.prototype.propertyIsEnumerable,PU=(e,t,n)=>t in e?AU(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,FU=(e,t)=>{for(var n in t||={})MU.call(t,n)&&PU(e,n,t[n]);if(jU)for(var n of jU(t))NU.call(t,n)&&PU(e,n,t[n]);return e},IU=(e,t,n)=>PU(e,typeof t==`symbol`?t:t+``,n),LU=class extends Wn{constructor(e){super(e),IU(this,`protocol`,`wc`),IU(this,`version`,2),IU(this,`core`),IU(this,`logger`),IU(this,`events`,new jt.EventEmitter),IU(this,`provider`),IU(this,`messages`),IU(this,`subscriber`),IU(this,`publisher`),IU(this,`name`,xB),IU(this,`transportExplicitlyClosed`,!1),IU(this,`initialized`,!1),IU(this,`connectionAttemptInProgress`,!1),IU(this,`relayUrl`),IU(this,`projectId`),IU(this,`packageName`),IU(this,`bundleId`),IU(this,`hasExperiencedNetworkDisruption`,!1),IU(this,`pingTimeout`),IU(this,`heartBeatTimeout`,(0,q.toMiliseconds)(q.THIRTY_SECONDS+q.FIVE_SECONDS)),IU(this,`reconnectTimeout`),IU(this,`connectPromise`),IU(this,`reconnectInProgress`,!1),IU(this,`requestsInFlight`,[]),IU(this,`connectTimeout`,(0,q.toMiliseconds)(q.ONE_SECOND*15)),IU(this,`request`,async e=>{this.logger.debug(`Publishing Request Payload`);let t=e.id||W().toString();await this.toEstablishConnection();try{this.logger.trace({id:t,method:e.method,topic:e.params?.topic},`relayer.request - publishing...`);let n=`${t}:${e.params?.tag||``}`;this.requestsInFlight.push(n);let r=await this.provider.request(e);return this.requestsInFlight=this.requestsInFlight.filter(e=>e!==n),r}catch(e){throw this.logger.debug(`Failed to Publish Request: ${t}`),e}}),IU(this,`resetPingTimeout`,()=>{OP()&&(clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{var e,t;try{this.logger.debug({},`pingTimeout: Connection stalled, terminating...`),(t=(e=this.provider?.connection?.socket)?.terminate)==null||t.call(e)}catch(e){this.logger.warn(e,e?.message)}},this.heartBeatTimeout))}),IU(this,`onPayloadHandler`,e=>{this.onProviderPayload(e),this.resetPingTimeout()}),IU(this,`onConnectHandler`,()=>{this.logger.warn({},`Relayer connected 🛜`),this.startPingTimeout(),this.events.emit(SB.connect)}),IU(this,`onDisconnectHandler`,()=>{this.logger.warn({},`Relayer disconnected 🛑`),this.requestsInFlight=[],this.onProviderDisconnect()}),IU(this,`onProviderErrorHandler`,e=>{this.logger.fatal(`Fatal socket error: ${e.message}`),this.events.emit(SB.error,e),this.logger.fatal(`Fatal socket error received, closing transport`),this.transportClose()}),IU(this,`registerProviderListeners`,()=>{this.provider.on(CB.payload,this.onPayloadHandler),this.provider.on(CB.connect,this.onConnectHandler),this.provider.on(CB.disconnect,this.onDisconnectHandler),this.provider.on(CB.error,this.onProviderErrorHandler)}),this.core=e.core,this.logger=typeof e.logger<`u`&&typeof e.logger!=`string`?g(e.logger,this.name):(0,v.default)(x({level:e.logger||`error`})),this.messages=new rU(this.logger,e.core),this.subscriber=new kU(this,this.logger),this.publisher=new mU(this,this.logger),this.relayUrl=e?.relayUrl||`wss://relay.walletconnect.org`,this.projectId=e.projectId,AP()?this.packageName=PP():jP()&&(this.bundleId=PP()),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 D(this.logger)}get connected(){return this.provider?.connection?.socket?.readyState===1||!1}get connecting(){return this.provider?.connection?.socket?.readyState===0||this.connectPromise!==void 0||!1}async publish(e,t,n){this.isInitialized(),await this.publisher.publish(e,t,n),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now(),transportType:TB.relay},EB.outbound)}async subscribe(e,t){this.isInitialized(),(!(t!=null&&t.transportType)||t?.transportType===`relay`)&&await this.toEstablishConnection();let n=typeof t?.internal?.throwOnFailedPublish>`u`?!0:t?.internal?.throwOnFailedPublish,r=this.subscriber.topicMap.get(e)?.[0]||``,i,a=t=>{t.topic===e&&(this.subscriber.off(OB.created,a),i())};return await Promise.all([new Promise(e=>{i=e,this.subscriber.on(OB.created,a)}),new Promise(async(i,a)=>{r=await this.subscriber.subscribe(e,FU({internal:{throwOnFailedPublish:n}},t)).catch(e=>{n&&a(e)})||r,i()})]),r}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 GP(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,n)=>{await this.connect(e).then(t).catch(n).finally(()=>{this.connectPromise=void 0})}),await this.connectPromise),!this.connected)throw 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 tB())throw 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}let t=e.sort((e,t)=>e.publishedAt-t.publishedAt);this.logger.debug(`Batch of ${t.length} message events sorted`);for(let e of t)try{await this.onMessageEvent(e)}catch(e){this.logger.warn(e,`Error while processing batch message event: `+e?.message)}this.logger.trace(`Batch of ${t.length} message events processed`)}async onLinkMessageEvent(e,t){let{topic:n}=e;if(!t.sessionExists){let e={topic:n,expiry:XP(q.FIVE_MINUTES),relay:{protocol:`irn`},active:!1};await this.core.pairing.pairings.set(n,e)}this.events.emit(SB.message,e),await this.recordMessageEvent(e,EB.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(e,t)=>{let n=()=>{t(Error(`Connection interrupted while trying to subscribe`))};this.provider.once(CB.disconnect,n),await GP(new Promise((e,t)=>{this.provider.connect().then(e).catch(t)}),this.connectTimeout,`Socket stalled when trying to connect to ${this.relayUrl}`).catch(e=>{t(e)}).finally(()=>{this.provider.off(CB.disconnect,n),clearTimeout(this.reconnectTimeout)}),await new Promise(async(e,t)=>{let n=()=>{t(Error(`Connection interrupted while trying to subscribe`))};this.provider.once(CB.disconnect,n),await this.subscriber.start().then(e).catch(t).finally(()=>{this.provider.off(CB.disconnect,n)})}),this.hasExperiencedNetworkDisruption=!1,e()})}catch(e){await this.subscriber.stop();let t=e;this.logger.warn({},t.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(e=>setTimeout(e,(0,q.toMiliseconds)(t*1))),t++}}startPingTimeout(){var e,t;if(OP())try{(e=this.provider?.connection)!=null&&e.socket&&((t=this.provider?.connection?.socket)==null||t.on(`ping`,()=>{this.resetPingTimeout()})),this.resetPingTimeout()}catch(e){this.logger.warn(e,e?.message)}}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();let e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new L(new Du(BP({sdkVersion:wB,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){let{topic:n,message:r}=e;await this.messages.set(n,r,t)}async shouldIgnoreMessageEvent(e){let{topic:t,message:n}=e;if(!n||n.length===0)return this.logger.warn(`Ignoring invalid/empty message: ${n}`),!0;if(!await this.subscriber.isKnownTopic(t))return this.logger.warn(`Ignoring message for unknown topic ${t}`),!0;let r=this.messages.has(t,n);return r&&this.logger.warn(`Ignoring duplicate message: ${n}`),r}async onProviderPayload(e){if(this.logger.debug(`Incoming Relay Payload`),this.logger.trace({type:`payload`,direction:`incoming`,payload:e}),p(e)){if(!e.method.endsWith(`_subscription`))return;let t=e.params,{topic:n,message:r,publishedAt:i,attestation:a}=t.data,o={topic:n,message:r,publishedAt:i,transportType:TB.relay,attestation:a};this.logger.debug(`Emitting Relayer Payload`),this.logger.trace(FU({type:`event`,event:t.id},o)),this.events.emit(t.id,o),await this.acknowledgePayload(e),await this.onMessageEvent(o)}else ue(e)&&this.events.emit(SB.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,EB.inbound),this.events.emit(SB.message,e))}async acknowledgePayload(e){let t=d(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(CB.payload,this.onPayloadHandler),this.provider.off(CB.connect,this.onConnectHandler),this.provider.off(CB.disconnect,this.onDisconnectHandler),this.provider.off(CB.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await tB();aB(async t=>{e!==t&&(e=t,t?await this.transportOpen().catch(e=>this.logger.error(e,e?.message)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))})}async onProviderDisconnect(){clearTimeout(this.pingTimeout),this.events.emit(SB.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},(0,q.toMiliseconds)(.1)))))}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}async toEstablishConnection(){await this.confirmOnlineStateOrThrow(),!this.connected&&await this.connect()}};function RU(){}function zU(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)===`[object Object]`:!1}function BU(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function VU(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var HU=`[object RegExp]`,UU=`[object String]`,WU=`[object Number]`,GU=`[object Boolean]`,KU=`[object Arguments]`,qU=`[object Symbol]`,JU=`[object Date]`,YU=`[object Map]`,XU=`[object Set]`,ZU=`[object Array]`,QU=`[object Function]`,$U=`[object ArrayBuffer]`,eW=`[object Object]`,tW=`[object Error]`,nW=`[object DataView]`,rW=`[object Uint8Array]`,iW=`[object Uint8ClampedArray]`,aW=`[object Uint16Array]`,oW=`[object Uint32Array]`,sW=`[object BigUint64Array]`,cW=`[object Int8Array]`,lW=`[object Int16Array]`,uW=`[object Int32Array]`,dW=`[object BigInt64Array]`,fW=`[object Float32Array]`,pW=`[object Float64Array]`;function mW(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function hW(e,t,n){return gW(e,t,void 0,void 0,void 0,void 0,n)}function gW(e,t,n,r,i,a,o){let s=o(e,t,n,r,i,a);if(s!==void 0)return s;if(typeof e==typeof t)switch(typeof e){case`bigint`:case`string`:case`boolean`:case`symbol`:case`undefined`:return e===t;case`number`:return e===t||Object.is(e,t);case`function`:return e===t;case`object`:return _W(e,t,a,o)}return _W(e,t,a,o)}function _W(e,t,n,r){if(Object.is(e,t))return!0;let i=VU(e),a=VU(t);if(i===KU&&(i=eW),a===KU&&(a=eW),i!==a)return!1;switch(i){case UU:return e.toString()===t.toString();case WU:return mW(e.valueOf(),t.valueOf());case GU:case JU:case qU:return Object.is(e.valueOf(),t.valueOf());case HU:return e.source===t.source&&e.flags===t.flags;case QU:return e===t}n??=new Map;let o=n.get(e),s=n.get(t);if(o!=null&&s!=null)return o===t;n.set(e,t),n.set(t,e);try{switch(i){case YU:if(e.size!==t.size)return!1;for(let[i,a]of e.entries())if(!t.has(i)||!gW(a,t.get(i),i,e,t,n,r))return!1;return!0;case XU:{if(e.size!==t.size)return!1;let i=Array.from(e.values()),a=Array.from(t.values());for(let o=0;o<i.length;o++){let s=i[o],c=a.findIndex(i=>gW(s,i,void 0,e,t,n,r));if(c===-1)return!1;a.splice(c,1)}return!0}case ZU:case rW:case iW:case aW:case oW:case sW:case cW:case lW:case uW:case dW:case fW:case pW:if(typeof Buffer<`u`&&Buffer.isBuffer(e)!==Buffer.isBuffer(t)||e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!gW(e[i],t[i],i,e,t,n,r))return!1;return!0;case $U:return e.byteLength===t.byteLength?_W(new Uint8Array(e),new Uint8Array(t),n,r):!1;case nW:return e.byteLength!==t.byteLength||e.byteOffset!==t.byteOffset?!1:_W(new Uint8Array(e),new Uint8Array(t),n,r);case tW:return e.name===t.name&&e.message===t.message;case eW:{if(!(_W(e.constructor,t.constructor,n,r)||zU(e)&&zU(t)))return!1;let i=[...Object.keys(e),...BU(e)],a=[...Object.keys(t),...BU(t)];if(i.length!==a.length)return!1;for(let a=0;a<i.length;a++){let o=i[a],s=e[o];if(!Object.hasOwn(t,o))return!1;let c=t[o];if(!gW(s,c,o,e,t,n,r))return!1}return!0}default:return!1}}finally{n.delete(e),n.delete(t)}}function vW(e,t){return hW(e,t,RU)}var yW=Object.defineProperty,bW=Object.getOwnPropertySymbols,xW=Object.prototype.hasOwnProperty,SW=Object.prototype.propertyIsEnumerable,CW=(e,t,n)=>t in e?yW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,wW=(e,t)=>{for(var n in t||={})xW.call(t,n)&&CW(e,n,t[n]);if(bW)for(var n of bW(t))SW.call(t,n)&&CW(e,n,t[n]);return e},TW=(e,t,n)=>CW(e,typeof t==`symbol`?t:t+``,n),EW=class extends Gn{constructor(e,t,n,r=dB,i=void 0){super(e,t,n,r),this.core=e,this.logger=t,this.name=n,TW(this,`map`,new Map),TW(this,`version`,`0.3`),TW(this,`cached`,[]),TW(this,`initialized`,!1),TW(this,`getKey`),TW(this,`storagePrefix`,dB),TW(this,`recentlyDeleted`,[]),TW(this,`recentlyDeletedLimit`,200),TW(this,`init`,async()=>{this.initialized||=(this.logger.trace(`Initialized`),await this.restore(),this.cached.forEach(e=>{this.getKey&&e!==null&&!bz(e)?this.map.set(this.getKey(e),e):Dz(e)?this.map.set(e.id,e):Oz(e)&&this.map.set(e.topic,e)}),this.cached=[],!0)}),TW(this,`set`,async(e,t)=>{this.isInitialized(),this.map.has(e)?await this.update(e,t):(this.logger.debug(`Setting value`),this.logger.trace({type:`method`,method:`set`,key:e,value:t}),this.map.set(e,t),await this.persist())}),TW(this,`get`,e=>(this.isInitialized(),this.logger.debug(`Getting value`),this.logger.trace({type:`method`,method:`get`,key:e}),this.getData(e))),TW(this,`getAll`,e=>(this.isInitialized(),e?this.values.filter(t=>Object.keys(e).every(n=>vW(t[n],e[n]))):this.values)),TW(this,`update`,async(e,t)=>{this.isInitialized(),this.logger.debug(`Updating value`),this.logger.trace({type:`method`,method:`update`,key:e,update:t});let n=wW(wW({},this.getData(e)),t);this.map.set(e,n),await this.persist()}),TW(this,`delete`,async(e,t)=>{this.isInitialized(),this.map.has(e)&&(this.logger.debug(`Deleting value`),this.logger.trace({type:`method`,method:`delete`,key:e,reason:t}),this.map.delete(e),this.addToRecentlyDeleted(e),await this.persist())}),this.logger=g(t,this.name),this.storagePrefix=r,this.getKey=i}get context(){return D(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){let t=this.map.get(e);if(!t){if(this.recentlyDeleted.includes(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(t),Error(t)}let{message:t}=Q(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw this.logger.error(t),Error(t)}return t}async persist(){await this.setDataStore(this.values)}async restore(){try{let e=await this.getDataStore();if(typeof e>`u`||!e.length)return;if(this.map.size){let{message:e}=Q(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),Error(e)}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){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}},DW=Object.defineProperty,OW=(e,t,n)=>t in e?DW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kW=(e,t,n)=>OW(e,typeof t==`symbol`?t:t+``,n),AW=class{constructor(e,t){this.core=e,this.logger=t,kW(this,`name`,AB),kW(this,`version`,`0.3`),kW(this,`events`,new jt.default),kW(this,`pairings`),kW(this,`initialized`,!1),kW(this,`storagePrefix`,dB),kW(this,`ignoredPayloadTypes`,[1]),kW(this,`registeredMethods`,[]),kW(this,`init`,async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace(`Initialized`))}),kW(this,`register`,({methods:e})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...e])]}),kW(this,`create`,async e=>{this.isInitialized();let t=NR(),n=await this.core.crypto.setSymKey(t),r=XP(q.FIVE_MINUTES),i={protocol:`irn`},a={topic:n,expiry:r,relay:i,active:!1,methods:e?.methods},o=az({protocol:this.core.protocol,version:this.core.version,topic:n,symKey:t,relay:i,expiryTimestamp:r,methods:e?.methods});return this.events.emit(MB.create,a),this.core.expirer.set(n,r),await this.pairings.set(n,a),await this.core.relayer.subscribe(n,{transportType:e?.transportType}),{topic:n,uri:o}}),kW(this,`pair`,async e=>{this.isInitialized();let t=this.core.eventClient.createEvent({properties:{topic:e?.uri,trace:[WB.pairing_started]}});this.isValidPair(e,t);let{topic:n,symKey:r,relay:i,expiryTimestamp:a,methods:o}=nz(e.uri);t.props.properties.topic=n,t.addTrace(WB.pairing_uri_validation_success),t.addTrace(WB.pairing_uri_not_expired);let s;if(this.pairings.keys.includes(n)){if(s=this.pairings.get(n),t.addTrace(WB.existing_pairing),s.active)throw t.setError(GB.active_pairing_already_exists),Error(`Pairing already exists: ${n}. Please try again with a new connection URI.`);t.addTrace(WB.pairing_not_expired)}let c=a||XP(q.FIVE_MINUTES),l={topic:n,relay:i,expiry:c,active:!1,methods:o};this.core.expirer.set(n,c),await this.pairings.set(n,l),t.addTrace(WB.store_new_pairing),e.activatePairing&&await this.activate({topic:n}),this.events.emit(MB.create,l),t.addTrace(WB.emit_inactive_pairing),this.core.crypto.keychain.has(n)||await this.core.crypto.setSymKey(r,n),t.addTrace(WB.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{t.setError(GB.no_internet_connection)}try{await this.core.relayer.subscribe(n,{relay:i})}catch(e){throw t.setError(GB.subscribe_pairing_topic_failure),e}return t.addTrace(WB.subscribe_pairing_topic_success),l}),kW(this,`activate`,async({topic:e})=>{this.isInitialized();let t=XP(q.FIVE_MINUTES);this.core.expirer.set(e,t),await this.pairings.update(e,{active:!0,expiry:t})}),kW(this,`ping`,async e=>{this.isInitialized(),await this.isValidPing(e),this.logger.warn(`ping() is deprecated and will be removed in the next major release.`);let{topic:t}=e;if(this.pairings.keys.includes(t)){let e=await this.sendRequest(t,`wc_pairingPing`,{}),{done:n,resolve:r,reject:i}=WP();this.events.once(QP(`pairing_ping`,e),({error:e})=>{e?i(e):r()}),await n()}}),kW(this,`updateExpiry`,async({topic:e,expiry:t})=>{this.isInitialized(),await this.pairings.update(e,{expiry:t})}),kW(this,`updateMetadata`,async({topic:e,metadata:t})=>{this.isInitialized(),await this.pairings.update(e,{peerMetadata:t})}),kW(this,`getPairings`,()=>(this.isInitialized(),this.pairings.values)),kW(this,`disconnect`,async e=>{this.isInitialized(),await this.isValidDisconnect(e);let{topic:t}=e;this.pairings.keys.includes(t)&&(await this.sendRequest(t,`wc_pairingDelete`,_z(`USER_DISCONNECTED`)),await this.deletePairing(t))}),kW(this,`formatUriFromPairing`,e=>{this.isInitialized();let{topic:t,relay:n,expiry:r,methods:i}=e,a=this.core.crypto.keychain.get(t);return az({protocol:this.core.protocol,version:this.core.version,topic:t,symKey:a,relay:n,expiryTimestamp:r,methods:i})}),kW(this,`sendRequest`,async(e,t,n)=>{let r=te(t,n),i=await this.core.crypto.encode(e,r),a=jB[t].req;return this.core.history.set(e,r),this.core.relayer.publish(e,i,a),r.id}),kW(this,`sendResult`,async(e,t,n)=>{let r=d(e,n),i=await this.core.crypto.encode(t,r),a=jB[(await this.core.history.get(t,e)).request.method].res;await this.core.relayer.publish(t,i,a),await this.core.history.resolve(r)}),kW(this,`sendError`,async(e,t,n)=>{let r=w(e,n),i=await this.core.crypto.encode(t,r),a=(await this.core.history.get(t,e)).request.method,o=jB[a]?jB[a].res:jB.unregistered_method.res;await this.core.relayer.publish(t,i,o),await this.core.history.resolve(r)}),kW(this,`deletePairing`,async(e,t)=>{await this.core.relayer.unsubscribe(e),await Promise.all([this.pairings.delete(e,_z(`USER_DISCONNECTED`)),this.core.crypto.deleteSymKey(e),t?Promise.resolve():this.core.expirer.del(e)])}),kW(this,`cleanup`,async()=>{let e=this.pairings.getAll().filter(e=>ZP(e.expiry));await Promise.all(e.map(e=>this.deletePairing(e.topic)))}),kW(this,`onRelayEventRequest`,async e=>{let{topic:t,payload:n}=e;switch(n.method){case`wc_pairingPing`:return await this.onPairingPingRequest(t,n);case`wc_pairingDelete`:return await this.onPairingDeleteRequest(t,n);default:return await this.onUnknownRpcMethodRequest(t,n)}}),kW(this,`onRelayEventResponse`,async e=>{let{topic:t,payload:n}=e,r=(await this.core.history.get(t,n.id)).request.method;switch(r){case`wc_pairingPing`:return this.onPairingPingResponse(t,n);default:return this.onUnknownRpcMethodResponse(r)}}),kW(this,`onPairingPingRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidPing({topic:e}),await this.sendResult(n,e,!0),this.events.emit(MB.ping,{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.logger.error(t)}}),kW(this,`onPairingPingResponse`,(e,t)=>{let{id:n}=t;setTimeout(()=>{k(t)?this.events.emit(QP(`pairing_ping`,n),{}):O(t)&&this.events.emit(QP(`pairing_ping`,n),{error:t.error})},500)}),kW(this,`onPairingDeleteRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidDisconnect({topic:e}),await this.deletePairing(e),this.events.emit(MB.delete,{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.logger.error(t)}}),kW(this,`onUnknownRpcMethodRequest`,async(e,t)=>{let{id:n,method:r}=t;try{if(this.registeredMethods.includes(r))return;let t=_z(`WC_METHOD_UNSUPPORTED`,r);await this.sendError(n,e,t),this.logger.error(t)}catch(t){await this.sendError(n,e,t),this.logger.error(t)}}),kW(this,`onUnknownRpcMethodResponse`,e=>{this.registeredMethods.includes(e)||this.logger.error(_z(`WC_METHOD_UNSUPPORTED`,e))}),kW(this,`isValidPair`,(e,t)=>{var n;if(!Hz(e)){let{message:n}=Q(`MISSING_OR_INVALID`,`pair() params: ${e}`);throw t.setError(GB.malformed_pairing_uri),Error(n)}if(!Ez(e.uri)){let{message:n}=Q(`MISSING_OR_INVALID`,`pair() uri: ${e.uri}`);throw t.setError(GB.malformed_pairing_uri),Error(n)}let r=nz(e?.uri);if(!((n=r?.relay)!=null&&n.protocol)){let{message:e}=Q(`MISSING_OR_INVALID`,`pair() uri#relay-protocol`);throw t.setError(GB.malformed_pairing_uri),Error(e)}if(!(r!=null&&r.symKey)){let{message:e}=Q(`MISSING_OR_INVALID`,`pair() uri#symKey`);throw t.setError(GB.malformed_pairing_uri),Error(e)}if(r!=null&&r.expiryTimestamp&&(0,q.toMiliseconds)(r?.expiryTimestamp)<Date.now()){t.setError(GB.pairing_expired);let{message:e}=Q(`EXPIRED`,`pair() URI has expired. Please try again with a new connection URI.`);throw Error(e)}}),kW(this,`isValidPing`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),kW(this,`isValidDisconnect`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),kW(this,`isValidPairingTopic`,async e=>{if(!xz(e,!1)){let{message:t}=Q(`MISSING_OR_INVALID`,`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.pairings.keys.includes(e)){let{message:t}=Q(`NO_MATCHING_KEY`,`pairing topic doesn't exist: ${e}`);throw Error(t)}if(ZP(this.pairings.get(e).expiry)){await this.deletePairing(e);let{message:t}=Q(`EXPIRED`,`pairing topic: ${e}`);throw Error(t)}}),this.core=e,this.logger=g(t,this.name),this.pairings=new EW(this.core,this.logger,this.name,this.storagePrefix)}get context(){return D(this.logger)}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}registerRelayerEvents(){this.core.relayer.on(SB.message,async e=>{let{topic:t,message:n,transportType:r}=e;if(this.pairings.keys.includes(t)&&r!==TB.link_mode&&!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(n)))try{let e=await this.core.crypto.decode(t,n);p(e)?(this.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e})):ue(e)&&(await this.core.history.resolve(e),await this.onRelayEventResponse({topic:t,payload:e}),this.core.history.delete(t,e.id)),await this.core.relayer.messages.ack(t,n)}catch(e){this.logger.error(e)}})}registerExpirerEvents(){this.core.expirer.on(IB.expired,async e=>{let{topic:t}=YP(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit(MB.expire,{topic:t}))})}},jW=Object.defineProperty,MW=(e,t,n)=>t in e?jW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,NW=(e,t,n)=>MW(e,typeof t==`symbol`?t:t+``,n),PW=class extends Vn{constructor(e,t){super(e,t),this.core=e,this.logger=t,NW(this,`records`,new Map),NW(this,`events`,new jt.EventEmitter),NW(this,`name`,PB),NW(this,`version`,`0.3`),NW(this,`cached`,[]),NW(this,`initialized`,!1),NW(this,`storagePrefix`,dB),NW(this,`init`,async()=>{this.initialized||=(this.logger.trace(`Initialized`),await this.restore(),this.cached.forEach(e=>this.records.set(e.id,e)),this.cached=[],this.registerEventListeners(),!0)}),NW(this,`set`,(e,t,n)=>{if(this.isInitialized(),this.logger.debug(`Setting JSON-RPC request history record`),this.logger.trace({type:`method`,method:`set`,topic:e,request:t,chainId:n}),this.records.has(t.id))return;let r={id:t.id,topic:e,request:{method:t.method,params:t.params||null},chainId:n,expiry:XP(q.THIRTY_DAYS)};this.records.set(r.id,r),this.persist(),this.events.emit(NB.created,r)}),NW(this,`resolve`,async e=>{if(this.isInitialized(),this.logger.debug(`Updating JSON-RPC response history record`),this.logger.trace({type:`method`,method:`update`,response:e}),!this.records.has(e.id))return;let t=await this.getRecord(e.id);typeof t.response>`u`&&(t.response=O(e)?{error:e.error}:{result:e.result},this.records.set(t.id,t),this.persist(),this.events.emit(NB.updated,t))}),NW(this,`get`,async(e,t)=>(this.isInitialized(),this.logger.debug(`Getting record`),this.logger.trace({type:`method`,method:`get`,topic:e,id:t}),await this.getRecord(t))),NW(this,`delete`,(e,t)=>{this.isInitialized(),this.logger.debug(`Deleting record`),this.logger.trace({type:`method`,method:`delete`,id:t}),this.values.forEach(n=>{if(n.topic===e){if(typeof t<`u`&&n.id!==t)return;this.records.delete(n.id),this.events.emit(NB.deleted,n)}}),this.persist()}),NW(this,`exists`,async(e,t)=>(this.isInitialized(),this.records.has(t)?(await this.getRecord(t)).topic===e:!1)),NW(this,`on`,(e,t)=>{this.events.on(e,t)}),NW(this,`once`,(e,t)=>{this.events.once(e,t)}),NW(this,`off`,(e,t)=>{this.events.off(e,t)}),NW(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.logger=g(t,this.name)}get context(){return D(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(){let e=[];return this.values.forEach(t=>{if(typeof t.response<`u`)return;let n={topic:t.topic,request:te(t.request.method,t.request.params,t.id),chainId:t.chainId};return e.push(n)}),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();let t=this.records.get(e);if(!t){let{message:t}=Q(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(NB.sync)}async restore(){try{let e=await this.getJsonRpcRecords();if(typeof e>`u`||!e.length)return;if(this.records.size){let{message:e}=Q(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),Error(e)}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(NB.created,e=>{let t=NB.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.events.on(NB.updated,e=>{let t=NB.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.events.on(NB.deleted,e=>{let t=NB.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.core.heartbeat.on(Pt.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(t=>{(0,q.toMiliseconds)(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(NB.deleted,t,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}},FW=Object.defineProperty,IW=(e,t,n)=>t in e?FW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,LW=(e,t,n)=>IW(e,typeof t==`symbol`?t:t+``,n),RW=class extends qn{constructor(e,t){super(e,t),this.core=e,this.logger=t,LW(this,`expirations`,new Map),LW(this,`events`,new jt.EventEmitter),LW(this,`name`,FB),LW(this,`version`,`0.3`),LW(this,`cached`,[]),LW(this,`initialized`,!1),LW(this,`storagePrefix`,dB),LW(this,`init`,async()=>{this.initialized||=(this.logger.trace(`Initialized`),await this.restore(),this.cached.forEach(e=>this.expirations.set(e.target,e)),this.cached=[],this.registerEventListeners(),!0)}),LW(this,`has`,e=>{try{let t=this.formatTarget(e);return typeof this.getExpiration(t)<`u`}catch{return!1}}),LW(this,`set`,(e,t)=>{this.isInitialized();let n=this.formatTarget(e),r={target:n,expiry:t};this.expirations.set(n,r),this.checkExpiry(n,r),this.events.emit(IB.created,{target:n,expiration:r})}),LW(this,`get`,e=>{this.isInitialized();let t=this.formatTarget(e);return this.getExpiration(t)}),LW(this,`del`,e=>{if(this.isInitialized(),this.has(e)){let t=this.formatTarget(e),n=this.getExpiration(t);this.expirations.delete(t),this.events.emit(IB.deleted,{target:t,expiration:n})}}),LW(this,`on`,(e,t)=>{this.events.on(e,t)}),LW(this,`once`,(e,t)=>{this.events.once(e,t)}),LW(this,`off`,(e,t)=>{this.events.off(e,t)}),LW(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.logger=g(t,this.name)}get context(){return D(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 qP(e);if(typeof e==`number`)return JP(e);let{message:t}=Q(`UNKNOWN_TYPE`,`Target type: ${typeof e}`);throw 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(IB.sync)}async restore(){try{let e=await this.getExpirations();if(typeof e>`u`||!e.length)return;if(this.expirations.size){let{message:e}=Q(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),Error(e)}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){let t=this.expirations.get(e);if(!t){let{message:t}=Q(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw this.logger.warn(t),Error(t)}return t}checkExpiry(e,t){let{expiry:n}=t;(0,q.toMiliseconds)(n)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(IB.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(Pt.pulse,()=>this.checkExpirations()),this.events.on(IB.created,e=>{let t=IB.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()}),this.events.on(IB.expired,e=>{let t=IB.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()}),this.events.on(IB.deleted,e=>{let t=IB.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()})}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}},zW=Object.defineProperty,BW=(e,t,n)=>t in e?zW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,VW=(e,t,n)=>BW(e,typeof t==`symbol`?t:t+``,n),HW=class extends Jn{constructor(e,t,n){super(e,t,n),this.core=e,this.logger=t,this.store=n,VW(this,`name`,LB),VW(this,`abortController`),VW(this,`isDevEnv`),VW(this,`verifyUrlV3`,BB),VW(this,`storagePrefix`,dB),VW(this,`version`,2),VW(this,`publicKey`),VW(this,`fetchPromise`),VW(this,`init`,async()=>{this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&(0,q.toMiliseconds)(this.publicKey?.expiresAt)<Date.now()&&(this.logger.debug(`verify v2 public key expired`),await this.removePublicKey()))}),VW(this,`register`,async e=>{if(!MP()||this.isDevEnv)return;let t=window.location.origin,{id:n,decryptedId:r}=e,i=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${t}&id=${n}&decryptedId=${r}`;try{let e=(0,Ms.getDocument)(),t=this.startAbortTimer(q.ONE_SECOND*5),r=await new Promise((r,a)=>{let o=()=>{window.removeEventListener(`message`,c),e.body.removeChild(s),a(`attestation aborted`)};this.abortController.signal.addEventListener(`abort`,o);let s=e.createElement(`iframe`);s.src=i,s.style.display=`none`,s.addEventListener(`error`,o,{signal:this.abortController.signal});let c=i=>{if(i.data&&typeof i.data==`string`)try{let a=JSON.parse(i.data);if(a.type===`verify_attestation`){if(us(a.attestation).payload.id!==n)return;clearInterval(t),e.body.removeChild(s),this.abortController.signal.removeEventListener(`abort`,o),window.removeEventListener(`message`,c),r(a.attestation===null?``:a.attestation)}}catch(e){this.logger.warn(e)}};e.body.appendChild(s),window.addEventListener(`message`,c,{signal:this.abortController.signal})});return this.logger.debug(`jwt attestation`,r),r}catch(e){this.logger.warn(e)}return``}),VW(this,`resolve`,async e=>{if(this.isDevEnv)return``;let{attestationId:t,hash:n,encryptedId:r}=e;if(t===``){this.logger.debug(`resolve: attestationId is empty, skipping`);return}if(t){if(us(t).payload.id!==r)return;let e=await this.isValidJwtAttestation(t);if(e){if(!e.isVerified){this.logger.warn(`resolve: jwt attestation: origin url not verified`);return}return e}}if(!n)return;let i=this.getVerifyUrl(e?.verifyUrl);return this.fetchAttestation(n,i)}),VW(this,`fetchAttestation`,async(e,t)=>{this.logger.debug(`resolving attestation: ${e} from url: ${t}`);let n=this.startAbortTimer(q.ONE_SECOND*5),r=await fetch(`${t}/attestation/${e}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(n),r.status===200?await r.json():void 0}),VW(this,`getVerifyUrl`,e=>{let t=e||`https://verify.walletconnect.org`;return VB.includes(t)||(this.logger.info(`verify url: ${t}, not included in trusted list, assigning default: https://verify.walletconnect.org`),t=`https://verify.walletconnect.org`),t}),VW(this,`fetchPublicKey`,async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);let e=this.startAbortTimer(q.FIVE_SECONDS),t=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(e),await t.json()}catch(e){this.logger.warn(e)}}),VW(this,`persistPublicKey`,async e=>{this.logger.debug(`persisting public key to local storage`,e),await this.store.setItem(this.storeKey,e),this.publicKey=e}),VW(this,`removePublicKey`,async()=>{this.logger.debug(`removing verify v2 public key from storage`),await this.store.removeItem(this.storeKey),this.publicKey=void 0}),VW(this,`isValidJwtAttestation`,async e=>{let t=await this.getPublicKey();try{if(t)return this.validateAttestation(e,t)}catch(e){this.logger.error(e),this.logger.warn(`error validating attestation`)}let n=await this.fetchAndPersistPublicKey();try{if(n)return this.validateAttestation(e,n)}catch(e){this.logger.error(e),this.logger.warn(`error validating attestation`)}}),VW(this,`getPublicKey`,async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey()),VW(this,`fetchAndPersistPublicKey`,async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async e=>{let t=await this.fetchPublicKey();t&&(await this.persistPublicKey(t),e(t))});let e=await this.fetchPromise;return this.fetchPromise=void 0,e}),VW(this,`validateAttestation`,(e,t)=>{let n=QR(e,t.publicKey),r={hasExpired:(0,q.toMiliseconds)(n.exp)<Date.now(),payload:n};if(r.hasExpired)throw this.logger.warn(`resolve: jwt attestation expired`),Error(`JWT attestation expired`);return{origin:r.payload.origin,isScam:r.payload.isScam,isVerified:r.payload.isVerified}}),this.logger=g(t,this.name),this.abortController=new AbortController,this.isDevEnv=oF(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//verify:public:key`}get context(){return D(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),(0,q.toMiliseconds)(e))}},UW=Object.defineProperty,WW=(e,t,n)=>t in e?UW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,GW=(e,t,n)=>WW(e,typeof t==`symbol`?t:t+``,n),KW=class extends Yn{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,GW(this,`context`,HB),GW(this,`registerDeviceToken`,async e=>{let{clientId:t,token:n,notificationType:r,enableEncrypted:i=!1}=e,a=`${UB}/${this.projectId}/clients`;await fetch(a,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({client_id:t,type:r,token:n,always_raw:i})})}),this.logger=g(t,this.context)}},qW=Object.defineProperty,JW=Object.getOwnPropertySymbols,YW=Object.prototype.hasOwnProperty,XW=Object.prototype.propertyIsEnumerable,ZW=(e,t,n)=>t in e?qW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,QW=(e,t)=>{for(var n in t||={})YW.call(t,n)&&ZW(e,n,t[n]);if(JW)for(var n of JW(t))XW.call(t,n)&&ZW(e,n,t[n]);return e},$W=(e,t,n)=>ZW(e,typeof t==`symbol`?t:t+``,n),eG=class extends Xn{constructor(e,t,n=!0){super(e,t,n),this.core=e,this.logger=t,$W(this,`context`,ZB),$W(this,`storagePrefix`,dB),$W(this,`storageVersion`,XB),$W(this,`events`,new Map),$W(this,`shouldPersist`,!1),$W(this,`init`,async()=>{if(!oF())try{let e={eventId:aF(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:`INIT`,type:``,properties:{client_id:await this.core.crypto.getClientId(),user_agent:zP(this.core.relayer.protocol,this.core.relayer.version,wB)}}};await this.sendEvent([e])}catch(e){this.logger.warn(e)}}),$W(this,`createEvent`,e=>{let{event:t=`ERROR`,type:n=``,properties:{topic:r,trace:i}}=e,a=aF(),o=this.core.projectId||``,s=QW({eventId:a,timestamp:Date.now(),props:{event:t,type:n,properties:{topic:r,trace:i}},bundleId:o,domain:this.getAppDomain()},this.setMethods(a));return this.telemetryEnabled&&(this.events.set(a,s),this.shouldPersist=!0),s}),$W(this,`getEvent`,e=>{let{eventId:t,topic:n}=e;if(t)return this.events.get(t);let r=Array.from(this.events.values()).find(e=>e.props.properties.topic===n);if(r)return QW(QW({},r),this.setMethods(r.eventId))}),$W(this,`deleteEvent`,e=>{let{eventId:t}=e;this.events.delete(t),this.shouldPersist=!0}),$W(this,`setEventListeners`,()=>{this.core.heartbeat.on(Pt.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(e=>{(0,q.fromMiliseconds)(Date.now())-(0,q.fromMiliseconds)(e.timestamp)>86400&&(this.events.delete(e.eventId),this.shouldPersist=!0)})})}),$W(this,`setMethods`,e=>({addTrace:t=>this.addTrace(e,t),setError:t=>this.setError(e,t)})),$W(this,`addTrace`,(e,t)=>{let n=this.events.get(e);n&&(n.props.properties.trace.push(t),this.events.set(e,n),this.shouldPersist=!0)}),$W(this,`setError`,(e,t)=>{let n=this.events.get(e);n&&(n.props.type=t,n.timestamp=Date.now(),this.events.set(e,n),this.shouldPersist=!0)}),$W(this,`persist`,async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1}),$W(this,`restore`,async()=>{try{let e=await this.core.storage.getItem(this.storageKey)||[];if(!e.length)return;e.forEach(e=>{this.events.set(e.eventId,QW(QW({},e),this.setMethods(e.eventId)))})}catch(e){this.logger.warn(e)}}),$W(this,`submit`,async()=>{if(!this.telemetryEnabled||this.events.size===0)return;let e=[];for(let[t,n]of this.events)n.props.type&&e.push(n);if(e.length!==0)try{if((await this.sendEvent(e)).ok)for(let t of e)this.events.delete(t.eventId),this.shouldPersist=!0}catch(e){this.logger.warn(e)}}),$W(this,`sendEvent`,async e=>{let t=this.getAppDomain()?``:`&sp=desktop`;return await fetch(`${QB}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${wB}${t}`,{method:`POST`,body:JSON.stringify(e)})}),$W(this,`getAppDomain`,()=>IP().url),this.logger=g(t,this.context),this.telemetryEnabled=n,n?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+`//`+this.context}},tG=Object.defineProperty,nG=Object.getOwnPropertySymbols,rG=Object.prototype.hasOwnProperty,iG=Object.prototype.propertyIsEnumerable,aG=(e,t,n)=>t in e?tG(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oG=(e,t)=>{for(var n in t||={})rG.call(t,n)&&aG(e,n,t[n]);if(nG)for(var n of nG(t))iG.call(t,n)&&aG(e,n,t[n]);return e},sG=(e,t,n)=>aG(e,typeof t==`symbol`?t:t+``,n),cG=class e extends Ln{constructor(e){var t;super(e),sG(this,`protocol`,`wc`),sG(this,`version`,2),sG(this,`name`,uB),sG(this,`relayUrl`),sG(this,`projectId`),sG(this,`customStoragePrefix`),sG(this,`events`,new jt.EventEmitter),sG(this,`logger`),sG(this,`heartbeat`),sG(this,`relayer`),sG(this,`crypto`),sG(this,`storage`),sG(this,`history`),sG(this,`expirer`),sG(this,`pairing`),sG(this,`verify`),sG(this,`echoClient`),sG(this,`linkModeSupportedApps`),sG(this,`eventClient`),sG(this,`initialized`,!1),sG(this,`logChunkController`),sG(this,`on`,(e,t)=>this.events.on(e,t)),sG(this,`once`,(e,t)=>this.events.once(e,t)),sG(this,`off`,(e,t)=>this.events.off(e,t)),sG(this,`removeListener`,(e,t)=>this.events.removeListener(e,t)),sG(this,`dispatchEnvelope`,({topic:e,message:t,sessionExists:n})=>{if(!e||!t)return;let r={topic:e,message:t,publishedAt:Date.now(),transportType:TB.link_mode};this.relayer.onLinkMessageEvent(r,{sessionExists:n})}),this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||`wss://relay.walletconnect.org`,this.customStoragePrefix=e!=null&&e.customStoragePrefix?`:${e.customStoragePrefix}`:``;let{logger:n,chunkLoggerController:r}=T({opts:x({level:typeof e?.logger==`string`&&e.logger?e.logger:fB.logger,name:uB}),maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=r,(t=this.logChunkController)!=null&&t.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{var e,t;(e=this.logChunkController)!=null&&e.downloadLogsBlobInBrowser&&((t=this.logChunkController)==null||t.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()}))}),this.logger=g(n,this.name),this.heartbeat=new Ft,this.crypto=new KH(this,this.logger,e?.keychain),this.history=new PW(this,this.logger),this.expirer=new RW(this,this.logger),this.storage=e!=null&&e.storage?e.storage:new Nn(oG(oG({},pB),e?.storageOptions)),this.relayer=new LU({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new AW(this,this.logger),this.verify=new HW(this,this.logger,this.storage),this.echoClient=new KW(this.projectId||``,this.logger),this.linkModeSupportedApps=[],this.eventClient=new eG(this,this.logger,e?.telemetryEnabled)}static async init(t){let n=new e(t);await n.initialize();let r=await n.crypto.getClientId();return await n.storage.setItem(DB,r),n}get context(){return D(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){return this.logChunkController?.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(`WALLETCONNECT_LINK_MODE_APPS`,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(`WALLETCONNECT_LINK_MODE_APPS`)||[],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}}},lG=`client`,uG=`wc@2:${lG}:`,dG={name:lG,logger:`error`,controller:!1,relayUrl:`wss://relay.walletconnect.org`},fG=`WALLETCONNECT_DEEPLINK_CHOICE`,pG=`proposal`;q.THIRTY_DAYS;var mG=`Proposal expired`,hG=`session`,gG=q.SEVEN_DAYS,_G=`engine`,vG={wc_sessionPropose:{req:{ttl:q.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:q.ONE_DAY,prompt:!1,tag:1104},res:{ttl:q.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:q.ONE_DAY,prompt:!1,tag:1106},res:{ttl:q.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:q.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:q.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:q.ONE_DAY,prompt:!1,tag:1112},res:{ttl:q.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:q.ONE_DAY,prompt:!1,tag:1114},res:{ttl:q.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:q.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:q.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1119}}},yG={min:q.FIVE_MINUTES,max:q.SEVEN_DAYS},bG={idle:`IDLE`,active:`ACTIVE`},xG={eth_sendTransaction:{key:``},eth_sendRawTransaction:{key:``},wallet_sendCalls:{key:``},solana_signTransaction:{key:`signature`},solana_signAllTransactions:{key:`transactions`},solana_signAndSendTransaction:{key:`signature`}},SG=`request`,CG=[`wc_sessionPropose`,`wc_sessionRequest`,`wc_authRequest`,`wc_sessionAuthenticate`],wG=`auth`,TG=`authKeys`,EG=`pairingTopics`,DG=`requests`,OG=`wc@1.5:${wG}:`,kG=`${OG}:PUB_KEY`,AG=Object.defineProperty,jG=Object.defineProperties,MG=Object.getOwnPropertyDescriptors,NG=Object.getOwnPropertySymbols,PG=Object.prototype.hasOwnProperty,FG=Object.prototype.propertyIsEnumerable,IG=(e,t,n)=>t in e?AG(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,LG=(e,t)=>{for(var n in t||={})PG.call(t,n)&&IG(e,n,t[n]);if(NG)for(var n of NG(t))FG.call(t,n)&&IG(e,n,t[n]);return e},RG=(e,t)=>jG(e,MG(t)),$=(e,t,n)=>IG(e,typeof t==`symbol`?t:t+``,n),zG=class extends tr{constructor(e){super(e),$(this,`name`,_G),$(this,`events`,new jt.default),$(this,`initialized`,!1),$(this,`requestQueue`,{state:bG.idle,queue:[]}),$(this,`sessionRequestQueue`,{state:bG.idle,queue:[]}),$(this,`requestQueueDelay`,q.ONE_SECOND),$(this,`expectedPairingMethodMap`,new Map),$(this,`recentlyDeletedMap`,new Map),$(this,`recentlyDeletedLimit`,200),$(this,`relayMessageCache`,[]),$(this,`pendingSessions`,new Map),$(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(vG)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},(0,q.toMiliseconds)(this.requestQueueDelay)))}),$(this,`connect`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();let t=RG(LG({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t);let{pairingTopic:n,requiredNamespaces:r,optionalNamespaces:i,sessionProperties:a,scopedProperties:o,relays:s}=t,c=n,l,u=!1;try{if(c){let e=this.client.core.pairing.pairings.get(c);this.client.logger.warn(`connect() with existing pairing topic is deprecated and will be removed in the next major release.`),u=e.active}}catch(e){throw this.client.logger.error(`connect() -> pairing.get(${c}) failed`),e}if(!c||!u){let{topic:e,uri:t}=await this.client.core.pairing.create();c=e,l=t}if(!c){let{message:e}=Q(`NO_MATCHING_KEY`,`connect() pairing topic: ${c}`);throw Error(e)}let d=await this.client.core.crypto.generateKeyPair(),f=vG.wc_sessionPropose.req.ttl||q.FIVE_MINUTES,p=XP(f),m=RG(LG(LG({requiredNamespaces:r,optionalNamespaces:i,relays:s??[{protocol:`irn`}],proposer:{publicKey:d,metadata:this.client.metadata},expiryTimestamp:p,pairingTopic:c},a&&{sessionProperties:a}),o&&{scopedProperties:o}),{id:S()}),h=QP(`session_connect`,m.id),{reject:g,resolve:_,done:v}=WP(f,mG),y=({id:e})=>{e===m.id&&(this.client.events.off(`proposal_expire`,y),this.pendingSessions.delete(m.id),this.events.emit(h,{error:{message:`Proposal expired`,code:0}}))};return this.client.events.on(`proposal_expire`,y),this.events.once(h,({error:e,session:t})=>{this.client.events.off(`proposal_expire`,y),e?g(e):t&&_(t)}),await this.sendRequest({topic:c,method:`wc_sessionPropose`,params:m,throwOnFailedPublish:!0,clientRpcId:m.id}),await this.setProposal(m.id,m),{uri:l,approval:v}}),$(this,`pair`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(e)}catch(e){throw this.client.logger.error(`pair() failed`),e}}),$(this,`approve`,async e=>{let t=this.client.core.eventClient.createEvent({properties:{topic:(e?.id)?.toString(),trace:[KB.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(e){throw t.setError(qB.no_internet_connection),e}try{await this.isValidProposalId(e?.id)}catch(n){throw this.client.logger.error(`approve() -> proposal.get(${e?.id}) failed`),t.setError(qB.proposal_not_found),n}try{await this.isValidApprove(e)}catch(e){throw this.client.logger.error(`approve() -> isValidApprove() failed`),t.setError(qB.session_approve_namespace_validation_failure),e}let{id:n,relayProtocol:r,namespaces:i,sessionProperties:a,scopedProperties:o,sessionConfig:s}=e,c=this.client.proposal.get(n);this.client.core.eventClient.deleteEvent({eventId:t.eventId});let{pairingTopic:l,proposer:u,requiredNamespaces:d,optionalNamespaces:f}=c,p=this.client.core.eventClient?.getEvent({topic:l});p||=this.client.core.eventClient?.createEvent({type:KB.session_approve_started,properties:{topic:l,trace:[KB.session_approve_started,KB.session_namespaces_validation_success]}});let m=await this.client.core.crypto.generateKeyPair(),h=u.publicKey,g=await this.client.core.crypto.generateSharedKey(m,h),_=LG(LG(LG({relay:{protocol:r??`irn`},namespaces:i,controller:{publicKey:m,metadata:this.client.metadata},expiry:XP(gG)},a&&{sessionProperties:a}),o&&{scopedProperties:o}),s&&{sessionConfig:s}),v=TB.relay;p.addTrace(KB.subscribing_session_topic);try{await this.client.core.relayer.subscribe(g,{transportType:v})}catch(e){throw p.setError(qB.subscribe_session_topic_failure),e}p.addTrace(KB.subscribe_session_topic_success);let y=RG(LG({},_),{topic:g,requiredNamespaces:d,optionalNamespaces:f,pairingTopic:l,acknowledged:!1,self:_.controller,peer:{publicKey:u.publicKey,metadata:u.metadata},controller:m,transportType:TB.relay});await this.client.session.set(g,y),p.addTrace(KB.store_session);try{p.addTrace(KB.publishing_session_settle),await this.sendRequest({topic:g,method:`wc_sessionSettle`,params:_,throwOnFailedPublish:!0}).catch(e=>{throw p?.setError(qB.session_settle_publish_failure),e}),p.addTrace(KB.session_settle_publish_success),p.addTrace(KB.publishing_session_approve),await this.sendResult({id:n,topic:l,result:{relay:{protocol:r??`irn`},responderPublicKey:m},throwOnFailedPublish:!0}).catch(e=>{throw p?.setError(qB.session_approve_publish_failure),e}),p.addTrace(KB.session_approve_publish_success)}catch(e){throw this.client.logger.error(e),this.client.session.delete(g,_z(`USER_DISCONNECTED`)),await this.client.core.relayer.unsubscribe(g),e}return this.client.core.eventClient.deleteEvent({eventId:p.eventId}),await this.client.core.pairing.updateMetadata({topic:l,metadata:u.metadata}),await this.client.proposal.delete(n,_z(`USER_DISCONNECTED`)),await this.client.core.pairing.activate({topic:l}),await this.setExpiry(g,XP(gG)),{topic:g,acknowledged:()=>Promise.resolve(this.client.session.get(g))}}),$(this,`reject`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(e)}catch(e){throw this.client.logger.error(`reject() -> isValidReject() failed`),e}let{id:t,reason:n}=e,r;try{r=this.client.proposal.get(t).pairingTopic}catch(e){throw this.client.logger.error(`reject() -> proposal.get(${t}) failed`),e}r&&(await this.sendError({id:t,topic:r,error:n,rpcOpts:vG.wc_sessionPropose.reject}),await this.client.proposal.delete(t,_z(`USER_DISCONNECTED`)))}),$(this,`update`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(e)}catch(e){throw this.client.logger.error(`update() -> isValidUpdate() failed`),e}let{topic:t,namespaces:n}=e,{done:r,resolve:i,reject:a}=WP(),o=S(),s=W().toString(),c=this.client.session.get(t).namespaces;return this.events.once(QP(`session_update`,o),({error:e})=>{e?a(e):i()}),await this.client.session.update(t,{namespaces:n}),await this.sendRequest({topic:t,method:`wc_sessionUpdate`,params:{namespaces:n},throwOnFailedPublish:!0,clientRpcId:o,relayRpcId:s}).catch(e=>{this.client.logger.error(e),this.client.session.update(t,{namespaces:c}),a(e)}),{acknowledged:r}}),$(this,`extend`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(e)}catch(e){throw this.client.logger.error(`extend() -> isValidExtend() failed`),e}let{topic:t}=e,n=S(),{done:r,resolve:i,reject:a}=WP();return this.events.once(QP(`session_extend`,n),({error:e})=>{e?a(e):i()}),await this.setExpiry(t,XP(gG)),this.sendRequest({topic:t,method:`wc_sessionExtend`,params:{},clientRpcId:n,throwOnFailedPublish:!0}).catch(e=>{a(e)}),{acknowledged:r}}),$(this,`request`,async e=>{this.isInitialized();try{await this.isValidRequest(e)}catch(e){throw this.client.logger.error(`request() -> isValidRequest() failed`),e}let{chainId:t,request:n,topic:r,expiry:i=vG.wc_sessionRequest.req.ttl}=e,a=this.client.session.get(r);a?.transportType===TB.relay&&await this.confirmOnlineStateOrThrow();let o=S(),s=W().toString(),{done:c,resolve:l,reject:u}=WP(i,`Request expired. Please try again.`);this.events.once(QP(`session_request`,o),({error:e,result:t})=>{e?u(e):l(t)});let d=`wc_sessionRequest`,f=this.getAppLinkIfEnabled(a.peer.metadata,a.transportType);if(f)return await this.sendRequest({clientRpcId:o,relayRpcId:s,topic:r,method:d,params:{request:RG(LG({},n),{expiryTimestamp:XP(i)}),chainId:t},expiry:i,throwOnFailedPublish:!0,appLink:f}).catch(e=>u(e)),this.client.events.emit(`session_request_sent`,{topic:r,request:n,chainId:t,id:o}),await c();let p={request:RG(LG({},n),{expiryTimestamp:XP(i)}),chainId:t},m=this.shouldSetTVF(d,p);return await Promise.all([new Promise(async e=>{await this.sendRequest(LG({clientRpcId:o,relayRpcId:s,topic:r,method:d,params:p,expiry:i,throwOnFailedPublish:!0},m&&{tvf:this.getTVFParams(o,p)})).catch(e=>u(e)),this.client.events.emit(`session_request_sent`,{topic:r,request:n,chainId:t,id:o}),e()}),new Promise(async e=>{var t;(t=a.sessionConfig)!=null&&t.disableDeepLink||await eF({id:o,topic:r,wcDeepLink:await rF(this.client.core.storage,fG)}),e()}),c()]).then(e=>e[2])}),$(this,`respond`,async e=>{this.isInitialized(),await this.isValidRespond(e);let{topic:t,response:n}=e,{id:r}=n,i=this.client.session.get(t);i.transportType===TB.relay&&await this.confirmOnlineStateOrThrow();let a=this.getAppLinkIfEnabled(i.peer.metadata,i.transportType);k(n)?await this.sendResult({id:r,topic:t,result:n.result,throwOnFailedPublish:!0,appLink:a}):O(n)&&await this.sendError({id:r,topic:t,error:n.error,appLink:a}),this.cleanupAfterResponse(e)}),$(this,`ping`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(e)}catch(e){throw this.client.logger.error(`ping() -> isValidPing() failed`),e}let{topic:t}=e;if(this.client.session.keys.includes(t)){let e=S(),n=W().toString(),{done:r,resolve:i,reject:a}=WP();this.events.once(QP(`session_ping`,e),({error:e})=>{e?a(e):i()}),await Promise.all([this.sendRequest({topic:t,method:`wc_sessionPing`,params:{},throwOnFailedPublish:!0,clientRpcId:e,relayRpcId:n}),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}))}),$(this,`emit`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);let{topic:t,event:n,chainId:r}=e,i=W().toString(),a=S();await this.sendRequest({topic:t,method:`wc_sessionEvent`,params:{event:n,chainId:r},throwOnFailedPublish:!0,relayRpcId:i,clientRpcId:a})}),$(this,`disconnect`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(e);let{topic:t}=e;if(this.client.session.keys.includes(t))await this.sendRequest({topic:t,method:`wc_sessionDelete`,params:_z(`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{let{message:e}=Q(`MISMATCHED_TOPIC`,`Session or pairing topic not found: ${t}`);throw Error(e)}}),$(this,`find`,e=>(this.isInitialized(),this.client.session.getAll().filter(t=>Cz(t,e)))),$(this,`getPendingSessionRequests`,()=>this.client.pendingRequest.getAll()),$(this,`authenticate`,async(e,t)=>{this.isInitialized(),this.isValidAuthenticate(e);let n=t&&this.client.core.linkModeSupportedApps.includes(t)&&this.client.metadata.redirect?.linkMode,r=n?TB.link_mode:TB.relay;r===TB.relay&&await this.confirmOnlineStateOrThrow();let{chains:i,statement:a=``,uri:o,domain:s,nonce:c,type:l,exp:u,nbf:d,methods:f=[],expiry:p}=e,m=[...e.resources||[]],{topic:h,uri:g}=await this.client.core.pairing.create({methods:[`wc_sessionAuthenticate`],transportType:r});this.client.logger.info({message:`Generated new pairing`,pairing:{topic:h,uri:g}});let _=await this.client.core.crypto.generateKeyPair(),v=FR(_);if(await Promise.all([this.client.auth.authKeys.set(kG,{responseTopic:v,publicKey:_}),this.client.auth.pairingTopics.set(v,{topic:v,pairingTopic:h})]),await this.client.core.relayer.subscribe(v,{transportType:r}),this.client.logger.info(`sending request to new pairing topic: ${h}`),f.length>0){let{namespace:e}=TP(i[0]),t=AI(e,`request`,f);LI(m)&&(t=MI(t,m.pop())),m.push(t)}let y=p&&p>vG.wc_sessionAuthenticate.req.ttl?p:vG.wc_sessionAuthenticate.req.ttl,b={authPayload:{type:l??`caip122`,chains:i,statement:a,aud:o,domain:s,version:`1`,nonce:c,iat:new Date().toISOString(),exp:u,nbf:d,resources:m},requester:{publicKey:_,metadata:this.client.metadata},expiryTimestamp:XP(y)},x={requiredNamespaces:{},optionalNamespaces:{eip155:{chains:i,methods:[...new Set([`personal_sign`,...f])],events:[`chainChanged`,`accountsChanged`]}},relays:[{protocol:`irn`}],pairingTopic:h,proposer:{publicKey:_,metadata:this.client.metadata},expiryTimestamp:XP(vG.wc_sessionPropose.req.ttl),id:S()},{done:C,resolve:w,reject:T}=WP(y,`Request expired`),E=S(),D=QP(`session_connect`,x.id),O=QP(`session_request`,E),k=async({error:e,session:t})=>{this.events.off(O,A),e?T(e):t&&w({session:t})},A=async e=>{var n,i,a;if(await this.deletePendingAuthRequest(E,{message:`fulfilled`,code:0}),e.error){let t=_z(`WC_METHOD_UNSUPPORTED`,`wc_sessionAuthenticate`);return e.error.code===t.code?void 0:(this.events.off(D,k),T(e.error.message))}await this.deleteProposal(x.id),this.events.off(D,k);let{cacaos:o,responder:s}=e.result,c=[],l=[];for(let e of o){await xI({cacao:e,projectId:this.client.core.projectId})||(this.client.logger.error(e,`Signature verification failed`),T(_z(`SESSION_SETTLEMENT_FAILED`,`Signature verification failed`)));let{p:t}=e,n=LI(t.resources),r=[yI(t.iss)],i=bI(t.iss);if(n){let e=FI(n),t=II(n);c.push(...e),r.push(...t)}for(let e of r)l.push(`${e}:${i}`)}let u=await this.client.core.crypto.generateSharedKey(_,s.publicKey),d;c.length>0&&(d={topic:u,acknowledged:!0,self:{publicKey:_,metadata:this.client.metadata},peer:s,controller:s.publicKey,expiry:XP(gG),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:`irn`},pairingTopic:h,namespaces:mz([...new Set(c)],[...new Set(l)]),transportType:r},await this.client.core.relayer.subscribe(u,{transportType:r}),await this.client.session.set(u,d),h&&await this.client.core.pairing.updateMetadata({topic:h,metadata:s.metadata}),d=this.client.session.get(u)),(n=this.client.metadata.redirect)!=null&&n.linkMode&&(i=s.metadata.redirect)!=null&&i.linkMode&&(a=s.metadata.redirect)!=null&&a.universal&&t&&(this.client.core.addLinkModeSupportedApp(s.metadata.redirect.universal),this.client.session.update(u,{transportType:TB.link_mode})),w({auths:o,session:d})};this.events.once(D,k),this.events.once(O,A);let j;try{if(n){let e=te(`wc_sessionAuthenticate`,b,E);this.client.core.history.set(h,e),j=oz(t,h,await this.client.core.crypto.encode(``,e,{type:2,encoding:ER}))}else await Promise.all([this.sendRequest({topic:h,method:`wc_sessionAuthenticate`,params:b,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:E}),this.sendRequest({topic:h,method:`wc_sessionPropose`,params:x,expiry:vG.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:x.id})])}catch(e){throw this.events.off(D,k),this.events.off(O,A),e}return await this.setProposal(x.id,x),await this.setAuthRequest(E,{request:RG(LG({},b),{verifyContext:{}}),pairingTopic:h,transportType:r}),{uri:j??g,response:C}}),$(this,`approveSessionAuthenticate`,async e=>{let{id:t,auths:n}=e,r=this.client.core.eventClient.createEvent({properties:{topic:t.toString(),trace:[JB.authenticated_session_approve_started]}});try{this.isInitialized()}catch(e){throw r.setError(YB.no_internet_connection),e}let i=this.getPendingAuthRequest(t);if(!i)throw r.setError(YB.authenticated_session_pending_request_not_found),Error(`Could not find pending auth request with id ${t}`);let a=i.transportType||TB.relay;a===TB.relay&&await this.confirmOnlineStateOrThrow();let o=i.requester.publicKey,s=await this.client.core.crypto.generateKeyPair(),c=FR(o),l={type:1,receiverPublicKey:o,senderPublicKey:s},u=[],d=[];for(let e of n){if(!await xI({cacao:e,projectId:this.client.core.projectId})){r.setError(YB.invalid_cacao);let e=_z(`SESSION_SETTLEMENT_FAILED`,`Signature verification failed`);throw await this.sendError({id:t,topic:c,error:e,encodeOpts:l}),Error(e.message)}r.addTrace(JB.cacaos_verified);let{p:n}=e,i=LI(n.resources),a=[yI(n.iss)],o=bI(n.iss);if(i){let e=FI(i),t=II(i);u.push(...e),a.push(...t)}for(let e of a)d.push(`${e}:${o}`)}let f=await this.client.core.crypto.generateSharedKey(s,o);r.addTrace(JB.create_authenticated_session_topic);let p;if(u?.length>0){p={topic:f,acknowledged:!0,self:{publicKey:s,metadata:this.client.metadata},peer:{publicKey:o,metadata:i.requester.metadata},controller:o,expiry:XP(gG),authentication:n,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:`irn`},pairingTopic:i.pairingTopic,namespaces:mz([...new Set(u)],[...new Set(d)]),transportType:a},r.addTrace(JB.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(f,{transportType:a})}catch(e){throw r.setError(YB.subscribe_authenticated_session_topic_failure),e}r.addTrace(JB.subscribe_authenticated_session_topic_success),await this.client.session.set(f,p),r.addTrace(JB.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:i.pairingTopic,metadata:i.requester.metadata})}r.addTrace(JB.publishing_authenticated_session_approve);try{await this.sendResult({topic:c,id:t,result:{cacaos:n,responder:{publicKey:s,metadata:this.client.metadata}},encodeOpts:l,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(i.requester.metadata,a)})}catch(e){throw r.setError(YB.authenticated_session_approve_publish_failure),e}return await this.client.auth.requests.delete(t,{message:`fulfilled`,code:0}),await this.client.core.pairing.activate({topic:i.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:r.eventId}),{session:p}}),$(this,`rejectSessionAuthenticate`,async e=>{this.isInitialized();let{id:t,reason:n}=e,r=this.getPendingAuthRequest(t);if(!r)throw Error(`Could not find pending auth request with id ${t}`);r.transportType===TB.relay&&await this.confirmOnlineStateOrThrow();let i=r.requester.publicKey,a=await this.client.core.crypto.generateKeyPair(),o=FR(i),s={type:1,receiverPublicKey:i,senderPublicKey:a};await this.sendError({id:t,topic:o,error:n,encodeOpts:s,rpcOpts:vG.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(r.requester.metadata,r.transportType)}),await this.client.auth.requests.delete(t,{message:`rejected`,code:0}),await this.client.proposal.delete(t,_z(`USER_DISCONNECTED`))}),$(this,`formatAuthMessage`,e=>{this.isInitialized();let{request:t,iss:n}=e;return SI(t,n)}),$(this,`processRelayMessageCache`,()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{let e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e){this.client.logger.error(e)}},50)}),$(this,`cleanupDuplicatePairings`,async e=>{if(e.pairingTopic)try{let t=this.client.core.pairing.pairings.get(e.pairingTopic),n=this.client.core.pairing.pairings.getAll().filter(n=>n.peerMetadata?.url&&n.peerMetadata?.url===e.peer.metadata.url&&n.topic&&n.topic!==t.topic);if(n.length===0)return;this.client.logger.info(`Cleaning up ${n.length} duplicate pairing(s)`),await Promise.all(n.map(e=>this.client.core.pairing.disconnect({topic:e.topic}))),this.client.logger.info(`Duplicate pairings clean up finished`)}catch(e){this.client.logger.error(e)}}),$(this,`deleteSession`,async e=>{let{topic:t,expirerHasDeleted:n=!1,emitEvent:r=!0,id:i=0}=e,{self:a}=this.client.session.get(t);await this.client.core.relayer.unsubscribe(t),await this.client.session.delete(t,_z(`USER_DISCONNECTED`)),this.addToRecentlyDeleted(t,`session`),this.client.core.crypto.keychain.has(a.publicKey)&&await this.client.core.crypto.deleteKeyPair(a.publicKey),this.client.core.crypto.keychain.has(t)&&await this.client.core.crypto.deleteSymKey(t),n||this.client.core.expirer.del(t),this.client.core.storage.removeItem(fG).catch(e=>this.client.logger.warn(e)),this.getPendingSessionRequests().forEach(e=>{e.topic===t&&this.deletePendingSessionRequest(e.id,_z(`USER_DISCONNECTED`))}),t===this.sessionRequestQueue.queue[0]?.topic&&(this.sessionRequestQueue.state=bG.idle),r&&this.client.events.emit(`session_delete`,{id:i,topic:t})}),$(this,`deleteProposal`,async(e,t)=>{if(t)try{let t=this.client.proposal.get(e);this.client.core.eventClient.getEvent({topic:t.pairingTopic})?.setError(qB.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,_z(`USER_DISCONNECTED`)),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,`proposal`)}),$(this,`deletePendingSessionRequest`,async(e,t,n=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),n?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,`request`),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(t=>t.id!==e),n&&(this.sessionRequestQueue.state=bG.idle,this.client.events.emit(`session_request_expire`,{id:e}))}),$(this,`deletePendingAuthRequest`,async(e,t,n=!1)=>{await Promise.all([this.client.auth.requests.delete(e,t),n?Promise.resolve():this.client.core.expirer.del(e)])}),$(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}))}),$(this,`setProposal`,async(e,t)=>{this.client.core.expirer.set(e,XP(vG.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)}),$(this,`setAuthRequest`,async(e,t)=>{let{request:n,pairingTopic:r,transportType:i=TB.relay}=t;this.client.core.expirer.set(e,n.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:n.authPayload,requester:n.requester,expiryTimestamp:n.expiryTimestamp,id:e,pairingTopic:r,verifyContext:n.verifyContext,transportType:i})}),$(this,`setPendingSessionRequest`,async e=>{let{id:t,topic:n,params:r,verifyContext:i}=e,a=r.request.expiryTimestamp||XP(vG.wc_sessionRequest.req.ttl);this.client.core.expirer.set(t,a),await this.client.pendingRequest.set(t,{id:t,topic:n,params:r,verifyContext:i})}),$(this,`sendRequest`,async e=>{let{topic:t,method:n,params:r,expiry:i,relayRpcId:a,clientRpcId:o,throwOnFailedPublish:s,appLink:c,tvf:l}=e,u=te(n,r,o),d,f=!!c;try{let e=f?ER:TR;d=await this.client.core.crypto.encode(t,u,{encoding:e})}catch(e){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${t} failed`),e}let p;if(CG.includes(n)){let e=IR(JSON.stringify(u)),t=IR(d);p=await this.client.core.verify.register({id:t,decryptedId:e})}let m=vG[n].req;if(m.attestation=p,i&&(m.ttl=i),a&&(m.id=a),this.client.core.history.set(t,u),f){let e=oz(c,t,d);await global.Linking.openURL(e,this.client.name)}else{let e=vG[n].req;i&&(e.ttl=i),a&&(e.id=a),e.tvf=RG(LG({},l),{correlationId:u.id}),s?(e.internal=RG(LG({},e.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(t,d,e)):this.client.core.relayer.publish(t,d,e).catch(e=>this.client.logger.error(e))}return u.id}),$(this,`sendResult`,async e=>{let{id:t,topic:n,result:r,throwOnFailedPublish:i,encodeOpts:a,appLink:o}=e,s=d(t,r),c,l=o&&typeof(global==null?void 0:global.Linking)<`u`;try{let e=l?ER:TR;c=await this.client.core.crypto.encode(n,s,RG(LG({},a||{}),{encoding:e}))}catch(e){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${n} failed`),e}let u,f;try{u=await this.client.core.history.get(n,t);let e=u.request;try{this.shouldSetTVF(e.method,e.params)&&(f=this.getTVFParams(t,e.params,r))}catch(e){this.client.logger.warn(`sendResult() -> getTVFParams() failed`,e)}}catch(e){throw this.client.logger.error(`sendResult() -> history.get(${n}, ${t}) failed`),e}if(l){let e=oz(o,n,c);await global.Linking.openURL(e,this.client.name)}else{let e=vG[u.request.method].res;e.tvf=RG(LG({},f),{correlationId:t}),i?(e.internal=RG(LG({},e.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(n,c,e)):this.client.core.relayer.publish(n,c,e).catch(e=>this.client.logger.error(e))}await this.client.core.history.resolve(s)}),$(this,`sendError`,async e=>{let{id:t,topic:n,error:r,encodeOpts:i,rpcOpts:a,appLink:o}=e,s=w(t,r),c,l=o&&typeof(global==null?void 0:global.Linking)<`u`;try{let e=l?ER:TR;c=await this.client.core.crypto.encode(n,s,RG(LG({},i||{}),{encoding:e}))}catch(e){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${n} failed`),e}let u;try{u=await this.client.core.history.get(n,t)}catch(e){throw this.client.logger.error(`sendError() -> history.get(${n}, ${t}) failed`),e}if(l){let e=oz(o,n,c);await global.Linking.openURL(e,this.client.name)}else{let e=u.request.method,t=a||vG[e].res;this.client.core.relayer.publish(n,c,t)}await this.client.core.history.resolve(s)}),$(this,`cleanup`,async()=>{let e=[],t=[];this.client.session.getAll().forEach(t=>{let n=!1;ZP(t.expiry)&&(n=!0),this.client.core.crypto.keychain.has(t.topic)||(n=!0),n&&e.push(t.topic)}),this.client.proposal.getAll().forEach(e=>{ZP(e.expiryTimestamp)&&t.push(e.id)}),await Promise.all([...e.map(e=>this.deleteSession({topic:e})),...t.map(e=>this.deleteProposal(e))])}),$(this,`onProviderMessageEvent`,async e=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(e):await this.onRelayMessage(e)}),$(this,`onRelayEventRequest`,async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()}),$(this,`processRequestsQueue`,async()=>{if(this.requestQueue.state===bG.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=bG.active;let e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(e){this.client.logger.warn(e)}}this.requestQueue.state=bG.idle}),$(this,`processRequest`,async e=>{let{topic:t,payload:n,attestation:r,transportType:i,encryptedId:a}=e,o=n.method;if(!this.shouldIgnorePairingRequest({topic:t,requestMethod:o}))switch(o){case`wc_sessionPropose`:return await this.onSessionProposeRequest({topic:t,payload:n,attestation:r,encryptedId:a});case`wc_sessionSettle`:return await this.onSessionSettleRequest(t,n);case`wc_sessionUpdate`:return await this.onSessionUpdateRequest(t,n);case`wc_sessionExtend`:return await this.onSessionExtendRequest(t,n);case`wc_sessionPing`:return await this.onSessionPingRequest(t,n);case`wc_sessionDelete`:return await this.onSessionDeleteRequest(t,n);case`wc_sessionRequest`:return await this.onSessionRequest({topic:t,payload:n,attestation:r,encryptedId:a,transportType:i});case`wc_sessionEvent`:return await this.onSessionEventRequest(t,n);case`wc_sessionAuthenticate`:return await this.onSessionAuthenticateRequest({topic:t,payload:n,attestation:r,encryptedId:a,transportType:i});default:return this.client.logger.info(`Unsupported request method ${o}`)}}),$(this,`onRelayEventResponse`,async e=>{let{topic:t,payload:n,transportType:r}=e,i=(await this.client.core.history.get(t,n.id)).request.method;switch(i){case`wc_sessionPropose`:return this.onSessionProposeResponse(t,n,r);case`wc_sessionSettle`:return this.onSessionSettleResponse(t,n);case`wc_sessionUpdate`:return this.onSessionUpdateResponse(t,n);case`wc_sessionExtend`:return this.onSessionExtendResponse(t,n);case`wc_sessionPing`:return this.onSessionPingResponse(t,n);case`wc_sessionRequest`:return this.onSessionRequestResponse(t,n);case`wc_sessionAuthenticate`:return this.onSessionAuthenticateResponse(t,n);default:return this.client.logger.info(`Unsupported response method ${i}`)}}),$(this,`onRelayEventUnknownPayload`,e=>{let{topic:t}=e,{message:n}=Q(`MISSING_OR_INVALID`,`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw Error(n)}),$(this,`shouldIgnorePairingRequest`,e=>{let{topic:t,requestMethod:n}=e,r=this.expectedPairingMethodMap.get(t);return!r||r.includes(n)?!1:!!(r.includes(`wc_sessionAuthenticate`)&&this.client.events.listenerCount(`session_authenticate`)>0)}),$(this,`onSessionProposeRequest`,async e=>{let{topic:t,payload:n,attestation:r,encryptedId:i}=e,{params:a,id:o}=n;try{let e=this.client.core.eventClient.getEvent({topic:t});this.client.events.listenerCount(`session_proposal`)===0&&(console.warn(`No listener for session_proposal event`),e?.setError(GB.proposal_listener_not_found)),this.isValidConnect(LG({},n.params));let s=LG({id:o,pairingTopic:t,expiryTimestamp:a.expiryTimestamp||XP(vG.wc_sessionPropose.req.ttl)},a);await this.setProposal(o,s);let c=await this.getVerifyContext({attestationId:r,hash:IR(JSON.stringify(n)),encryptedId:i,metadata:s.proposer.metadata});e?.addTrace(WB.emit_session_proposal),this.client.events.emit(`session_proposal`,{id:o,params:s,verifyContext:c})}catch(e){await this.sendError({id:o,topic:t,error:e,rpcOpts:vG.wc_sessionPropose.autoReject}),this.client.logger.error(e)}}),$(this,`onSessionProposeResponse`,async(e,t,n)=>{let{id:r}=t;if(k(t)){let{result:i}=t;this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,result:i});let a=this.client.proposal.get(r);this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,proposal:a});let o=a.proposer.publicKey;this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,selfPublicKey:o});let s=i.responderPublicKey;this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,peerPublicKey:s});let c=await this.client.core.crypto.generateSharedKey(o,s);this.pendingSessions.set(r,{sessionTopic:c,pairingTopic:e,proposalId:r,publicKey:o});let l=await this.client.core.relayer.subscribe(c,{transportType:n});this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,subscriptionId:l}),await this.client.core.pairing.activate({topic:e})}else if(O(t)){await this.client.proposal.delete(r,_z(`USER_DISCONNECTED`));let e=QP(`session_connect`,r);if(this.events.listenerCount(e)===0)throw Error(`emitting ${e} without any listeners, 954`);this.events.emit(e,{error:t.error})}}),$(this,`onSessionSettleRequest`,async(e,t)=>{let{id:n,params:r}=t;try{this.isValidSessionSettleRequest(r);let{relay:n,controller:i,expiry:a,namespaces:o,sessionProperties:s,scopedProperties:c,sessionConfig:l}=t.params,u=[...this.pendingSessions.values()].find(t=>t.sessionTopic===e);if(!u)return this.client.logger.error(`Pending session not found for topic ${e}`);let d=this.client.proposal.get(u.proposalId),f=RG(LG(LG(LG({topic:e,relay:n,expiry:a,namespaces:o,acknowledged:!0,pairingTopic:u.pairingTopic,requiredNamespaces:d.requiredNamespaces,optionalNamespaces:d.optionalNamespaces,controller:i.publicKey,self:{publicKey:u.publicKey,metadata:this.client.metadata},peer:{publicKey:i.publicKey,metadata:i.metadata}},s&&{sessionProperties:s}),c&&{scopedProperties:c}),l&&{sessionConfig:l}),{transportType:TB.relay});await this.client.session.set(f.topic,f),await this.setExpiry(f.topic,f.expiry),await this.client.core.pairing.updateMetadata({topic:u.pairingTopic,metadata:f.peer.metadata}),this.client.events.emit(`session_connect`,{session:f}),this.events.emit(QP(`session_connect`,u.proposalId),{session:f}),this.pendingSessions.delete(u.proposalId),this.deleteProposal(u.proposalId,!1),this.cleanupDuplicatePairings(f),await this.sendResult({id:t.id,topic:e,result:!0,throwOnFailedPublish:!0})}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),$(this,`onSessionSettleResponse`,async(e,t)=>{let{id:n}=t;k(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(QP(`session_approve`,n),{})):O(t)&&(await this.client.session.delete(e,_z(`USER_DISCONNECTED`)),this.events.emit(QP(`session_approve`,n),{error:t.error}))}),$(this,`onSessionUpdateRequest`,async(e,t)=>{let{params:n,id:r}=t;try{let t=`${e}_session_update`,i=lB.get(t);if(i&&this.isRequestOutOfSync(i,r)){this.client.logger.warn(`Discarding out of sync request - ${r}`),this.sendError({id:r,topic:e,error:_z(`INVALID_UPDATE_REQUEST`)});return}this.isValidUpdate(LG({topic:e},n));try{lB.set(t,r),await this.client.session.update(e,{namespaces:n.namespaces}),await this.sendResult({id:r,topic:e,result:!0,throwOnFailedPublish:!0})}catch(e){throw lB.delete(t),e}this.client.events.emit(`session_update`,{id:r,topic:e,params:n})}catch(t){await this.sendError({id:r,topic:e,error:t}),this.client.logger.error(t)}}),$(this,`isRequestOutOfSync`,(e,t)=>t.toString().slice(0,-3)<e.toString().slice(0,-3)),$(this,`onSessionUpdateResponse`,(e,t)=>{let{id:n}=t,r=QP(`session_update`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);k(t)?this.events.emit(QP(`session_update`,n),{}):O(t)&&this.events.emit(QP(`session_update`,n),{error:t.error})}),$(this,`onSessionExtendRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,XP(gG)),await this.sendResult({id:n,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(`session_extend`,{id:n,topic:e})}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),$(this,`onSessionExtendResponse`,(e,t)=>{let{id:n}=t,r=QP(`session_extend`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);k(t)?this.events.emit(QP(`session_extend`,n),{}):O(t)&&this.events.emit(QP(`session_extend`,n),{error:t.error})}),$(this,`onSessionPingRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidPing({topic:e}),await this.sendResult({id:n,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(`session_ping`,{id:n,topic:e})}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),$(this,`onSessionPingResponse`,(e,t)=>{let{id:n}=t,r=QP(`session_ping`,n);setTimeout(()=>{if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners 2176`);k(t)?this.events.emit(QP(`session_ping`,n),{}):O(t)&&this.events.emit(QP(`session_ping`,n),{error:t.error})},500)}),$(this,`onSessionDeleteRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),Promise.all([new Promise(t=>{this.client.core.relayer.once(SB.publish,async()=>{t(await this.deleteSession({topic:e,id:n}))})}),this.sendResult({id:n,topic:e,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:_z(`USER_DISCONNECTED`)})]).catch(e=>this.client.logger.error(e))}catch(e){this.client.logger.error(e)}}),$(this,`onSessionRequest`,async e=>{var t,n;let{topic:r,payload:i,attestation:a,encryptedId:o,transportType:s}=e,{id:c,params:l}=i;try{await this.isValidRequest(LG({topic:r},l));let e=this.client.session.get(r),i={id:c,topic:r,params:l,verifyContext:await this.getVerifyContext({attestationId:a,hash:IR(JSON.stringify(te(`wc_sessionRequest`,l,c))),encryptedId:o,metadata:e.peer.metadata,transportType:s})};await this.setPendingSessionRequest(i),s===TB.link_mode&&(t=e.peer.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp(e.peer.metadata.redirect?.universal),(n=this.client.signConfig)!=null&&n.disableRequestQueue?this.emitSessionRequest(i):(this.addSessionRequestToSessionRequestQueue(i),this.processSessionRequestQueue())}catch(e){await this.sendError({id:c,topic:r,error:e}),this.client.logger.error(e)}}),$(this,`onSessionRequestResponse`,(e,t)=>{let{id:n}=t,r=QP(`session_request`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);k(t)?this.events.emit(QP(`session_request`,n),{result:t.result}):O(t)&&this.events.emit(QP(`session_request`,n),{error:t.error})}),$(this,`onSessionEventRequest`,async(e,t)=>{let{id:n,params:r}=t;try{let t=`${e}_session_event_${r.event.name}`,i=lB.get(t);if(i&&this.isRequestOutOfSync(i,n)){this.client.logger.info(`Discarding out of sync request - ${n}`);return}this.isValidEmit(LG({topic:e},r)),this.client.events.emit(`session_event`,{id:n,topic:e,params:r}),lB.set(t,n)}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),$(this,`onSessionAuthenticateResponse`,(e,t)=>{let{id:n}=t;this.client.logger.trace({type:`method`,method:`onSessionAuthenticateResponse`,topic:e,payload:t}),k(t)?this.events.emit(QP(`session_request`,n),{result:t.result}):O(t)&&this.events.emit(QP(`session_request`,n),{error:t.error})}),$(this,`onSessionAuthenticateRequest`,async e=>{var t;let{topic:n,payload:r,attestation:i,encryptedId:a,transportType:o}=e;try{let{requester:e,authPayload:s,expiryTimestamp:c}=r.params,l=await this.getVerifyContext({attestationId:i,hash:IR(JSON.stringify(r)),encryptedId:a,metadata:e.metadata,transportType:o}),u={requester:e,pairingTopic:n,id:r.id,authPayload:s,verifyContext:l,expiryTimestamp:c};await this.setAuthRequest(r.id,{request:u,pairingTopic:n,transportType:o}),o===TB.link_mode&&(t=e.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp(e.metadata.redirect.universal),this.client.events.emit(`session_authenticate`,{topic:n,params:r.params,id:r.id,verifyContext:l})}catch(e){this.client.logger.error(e);let t=r.params.requester.publicKey,i=await this.client.core.crypto.generateKeyPair(),a=this.getAppLinkIfEnabled(r.params.requester.metadata,o),s={type:1,receiverPublicKey:t,senderPublicKey:i};await this.sendError({id:r.id,topic:n,error:e,encodeOpts:s,rpcOpts:vG.wc_sessionAuthenticate.autoReject,appLink:a})}}),$(this,`addSessionRequestToSessionRequestQueue`,e=>{this.sessionRequestQueue.queue.push(e)}),$(this,`cleanupAfterResponse`,e=>{this.deletePendingSessionRequest(e.response.id,{message:`fulfilled`,code:0}),setTimeout(()=>{this.sessionRequestQueue.state=bG.idle,this.processSessionRequestQueue()},(0,q.toMiliseconds)(this.requestQueueDelay))}),$(this,`cleanupPendingSentRequestsForTopic`,({topic:e,error:t})=>{let n=this.client.core.history.pending;n.length>0&&n.filter(t=>t.topic===e&&t.request.method===`wc_sessionRequest`).forEach(e=>{let n=e.request.id,r=QP(`session_request`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);this.events.emit(QP(`session_request`,e.request.id),{error:t})})}),$(this,`processSessionRequestQueue`,()=>{if(this.sessionRequestQueue.state===bG.active){this.client.logger.info(`session request queue is already active.`);return}let e=this.sessionRequestQueue.queue[0];if(!e){this.client.logger.info(`session request queue is empty.`);return}try{this.sessionRequestQueue.state=bG.active,this.emitSessionRequest(e)}catch(e){this.client.logger.error(e)}}),$(this,`emitSessionRequest`,e=>{this.client.events.emit(`session_request`,e)}),$(this,`onPairingCreated`,e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;let t=this.client.proposal.getAll().find(t=>t.pairingTopic===e.topic);t&&this.onSessionProposeRequest({topic:e.topic,payload:te(`wc_sessionPropose`,RG(LG({},t),{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties,scopedProperties:t.scopedProperties}),t.id)})}),$(this,`isValidConnect`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`connect() params: ${JSON.stringify(e)}`);throw Error(t)}let{pairingTopic:t,requiredNamespaces:n,optionalNamespaces:r,sessionProperties:i,scopedProperties:a,relays:o}=e;if(bz(t)||await this.isValidPairingTopic(t),!Bz(o,!0)){let{message:e}=Q(`MISSING_OR_INVALID`,`connect() relays: ${o}`);throw Error(e)}if(!bz(n)&&yz(n)!==0&&this.validateNamespaces(n,`requiredNamespaces`),!bz(r)&&yz(r)!==0&&this.validateNamespaces(r,`optionalNamespaces`),bz(i)||this.validateSessionProps(i,`sessionProperties`),!bz(a)){this.validateSessionProps(a,`scopedProperties`);let e=Object.keys(n||{}).concat(Object.keys(r||{}));if(!Object.keys(a).every(t=>e.includes(t)))throw Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(a)}, required/optional namespaces: ${JSON.stringify(e)}`)}}),$(this,`validateNamespaces`,(e,t)=>{let n=Lz(e,`connect()`,t);if(n)throw Error(n.message)}),$(this,`isValidApprove`,async e=>{if(!Hz(e))throw Error(Q(`MISSING_OR_INVALID`,`approve() params: ${e}`).message);let{id:t,namespaces:n,relayProtocol:r,sessionProperties:i,scopedProperties:a}=e;this.checkRecentlyDeleted(t),await this.isValidProposalId(t);let o=this.client.proposal.get(t),s=Rz(n,`approve()`);if(s)throw Error(s.message);let c=Xz(o.requiredNamespaces,n,`approve()`);if(c)throw Error(c.message);if(!xz(r,!0)){let{message:e}=Q(`MISSING_OR_INVALID`,`approve() relayProtocol: ${r}`);throw Error(e)}if(bz(i)||this.validateSessionProps(i,`sessionProperties`),!bz(a)){this.validateSessionProps(a,`scopedProperties`);let e=new Set(Object.keys(n));if(!Object.keys(a).every(t=>e.has(t)))throw Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(a)}, approved namespaces: ${Array.from(e).join(`, `)}`)}}),$(this,`isValidReject`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`reject() params: ${e}`);throw Error(t)}let{id:t,reason:n}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!Uz(n)){let{message:e}=Q(`MISSING_OR_INVALID`,`reject() reason: ${JSON.stringify(n)}`);throw Error(e)}}),$(this,`isValidSessionSettleRequest`,e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`onSessionSettleRequest() params: ${e}`);throw Error(t)}let{relay:t,controller:n,namespaces:r,expiry:i}=e;if(!zz(t)){let{message:e}=Q(`MISSING_OR_INVALID`,`onSessionSettleRequest() relay protocol should be a string`);throw Error(e)}let a=kz(n,`onSessionSettleRequest()`);if(a)throw Error(a.message);let o=Rz(r,`onSessionSettleRequest()`);if(o)throw Error(o.message);if(ZP(i)){let{message:e}=Q(`EXPIRED`,`onSessionSettleRequest()`);throw Error(e)}}),$(this,`isValidUpdate`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`update() params: ${e}`);throw Error(t)}let{topic:t,namespaces:n}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);let r=this.client.session.get(t),i=Rz(n,`update()`);if(i)throw Error(i.message);let a=Xz(r.requiredNamespaces,n,`update()`);if(a)throw Error(a.message)}),$(this,`isValidExtend`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`extend() params: ${e}`);throw Error(t)}let{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)}),$(this,`isValidRequest`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`request() params: ${e}`);throw Error(t)}let{topic:t,request:n,chainId:r,expiry:i}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);let{namespaces:a}=this.client.session.get(t);if(!qz(a,r)){let{message:e}=Q(`MISSING_OR_INVALID`,`request() chainId: ${r}`);throw Error(e)}if(!Wz(n)){let{message:e}=Q(`MISSING_OR_INVALID`,`request() ${JSON.stringify(n)}`);throw Error(e)}if(!Jz(a,r,n.method)){let{message:e}=Q(`MISSING_OR_INVALID`,`request() method: ${n.method}`);throw Error(e)}if(i&&!eB(i,yG)){let{message:e}=Q(`MISSING_OR_INVALID`,`request() expiry: ${i}. Expiry must be a number (in seconds) between ${yG.min} and ${yG.max}`);throw Error(e)}}),$(this,`isValidRespond`,async e=>{var t;if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`respond() params: ${e}`);throw Error(t)}let{topic:n,response:r}=e;try{await this.isValidSessionTopic(n)}catch(n){throw(t=e?.response)!=null&&t.id&&this.cleanupAfterResponse(e),n}if(!Gz(r)){let{message:e}=Q(`MISSING_OR_INVALID`,`respond() response: ${JSON.stringify(r)}`);throw Error(e)}}),$(this,`isValidPing`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),$(this,`isValidEmit`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`emit() params: ${e}`);throw Error(t)}let{topic:t,event:n,chainId:r}=e;await this.isValidSessionTopic(t);let{namespaces:i}=this.client.session.get(t);if(!qz(i,r)){let{message:e}=Q(`MISSING_OR_INVALID`,`emit() chainId: ${r}`);throw Error(e)}if(!Kz(n)){let{message:e}=Q(`MISSING_OR_INVALID`,`emit() event: ${JSON.stringify(n)}`);throw Error(e)}if(!Yz(i,r,n.name)){let{message:e}=Q(`MISSING_OR_INVALID`,`emit() event: ${JSON.stringify(n)}`);throw Error(e)}}),$(this,`isValidDisconnect`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),$(this,`isValidAuthenticate`,e=>{let{chains:t,uri:n,domain:r,nonce:i}=e;if(!Array.isArray(t)||t.length===0)throw Error(`chains is required and must be a non-empty array`);if(!xz(n,!1))throw Error(`uri is required parameter`);if(!xz(r,!1))throw Error(`domain is required parameter`);if(!xz(i,!1))throw Error(`nonce is required parameter`);if([...new Set(t.map(e=>TP(e).namespace))].length>1)throw Error(`Multi-namespace requests are not supported. Please request single namespace only.`);let{namespace:a}=TP(t[0]);if(a!==`eip155`)throw Error(`Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.`)}),$(this,`getVerifyContext`,async e=>{let{attestationId:t,hash:n,encryptedId:r,metadata:i,transportType:a}=e,o={verified:{verifyUrl:i.verifyUrl||`https://verify.walletconnect.org`,validation:`UNKNOWN`,origin:i.url||``}};try{if(a===TB.link_mode){let e=this.getAppLinkIfEnabled(i,a);return o.verified.validation=e&&new URL(e).origin===new URL(i.url).origin?`VALID`:`INVALID`,o}let e=await this.client.core.verify.resolve({attestationId:t,hash:n,encryptedId:r,verifyUrl:i.verifyUrl});e&&(o.verified.origin=e.origin,o.verified.isScam=e.isScam,o.verified.validation=e.origin===new URL(i.url).origin?`VALID`:`INVALID`)}catch(e){this.client.logger.warn(e)}return this.client.logger.debug(`Verify context: ${JSON.stringify(o)}`),o}),$(this,`validateSessionProps`,(e,t)=>{Object.values(e).forEach((n,r)=>{if(n==null){let{message:i}=Q(`MISSING_OR_INVALID`,`${t} must contain an existing value for each key. Received: ${n} for key ${Object.keys(e)[r]}`);throw Error(i)}})}),$(this,`getPendingAuthRequest`,e=>{let t=this.client.auth.requests.get(e);return typeof t==`object`?t:void 0}),$(this,`addToRecentlyDeleted`,(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let e=0,t=this.recentlyDeletedLimit/2;for(let n of this.recentlyDeletedMap.keys()){if(e++>=t)break;this.recentlyDeletedMap.delete(n)}}}),$(this,`checkRecentlyDeleted`,e=>{let t=this.recentlyDeletedMap.get(e);if(t){let{message:n}=Q(`MISSING_OR_INVALID`,`Record was recently deleted - ${t}: ${e}`);throw Error(n)}}),$(this,`isLinkModeEnabled`,(e,t)=>!e||t!==TB.link_mode?!1:this.client.metadata?.redirect?.linkMode===!0&&this.client.metadata?.redirect?.universal!==void 0&&this.client.metadata?.redirect?.universal!==``&&e?.redirect?.universal!==void 0&&e?.redirect?.universal!==``&&e?.redirect?.linkMode===!0&&this.client.core.linkModeSupportedApps.includes(e.redirect.universal)&&typeof(global==null?void 0:global.Linking)<`u`),$(this,`getAppLinkIfEnabled`,(e,t)=>this.isLinkModeEnabled(e,t)?e?.redirect?.universal:void 0),$(this,`handleLinkModeMessage`,({url:e})=>{if(!e||!e.includes(`wc_ev`)||!e.includes(`topic`))return;let t=iF(e,`topic`)||``,n=decodeURIComponent(iF(e,`wc_ev`)||``),r=this.client.session.keys.includes(t);r&&this.client.session.update(t,{transportType:TB.link_mode}),this.client.core.dispatchEnvelope({topic:t,message:n,sessionExists:r})}),$(this,`registerLinkModeListeners`,async()=>{var e;if(oF()||kP()&&(e=this.client.metadata.redirect)!=null&&e.linkMode){let e=global==null?void 0:global.Linking;if(typeof e<`u`){e.addEventListener(`url`,this.handleLinkModeMessage,this.client.name);let t=await e.getInitialURL();t&&setTimeout(()=>{this.handleLinkModeMessage({url:t})},50)}}}),$(this,`shouldSetTVF`,(e,t)=>{if(!t||e!==`wc_sessionRequest`)return!1;let{request:n}=t;return Object.keys(xG).includes(n.method)}),$(this,`getTVFParams`,(e,t,n)=>{try{let r=t.request.method,i=this.extractTxHashesFromResult(r,n);return RG(LG({correlationId:e,rpcMethods:[r],chainId:t.chainId},this.isValidContractData(t.request.params)&&{contractAddresses:[t.request.params?.[0]?.to]}),{txHashes:i})}catch(e){this.client.logger.warn(`Error getting TVF params`,e)}return{}}),$(this,`isValidContractData`,e=>{if(!e)return!1;try{let t=e?.data||e?.[0]?.data;if(!t.startsWith(`0x`))return!1;let n=t.slice(2);return/^[0-9a-fA-F]*$/.test(n)?n.length%2==0:!1}catch{}return!1}),$(this,`extractTxHashesFromResult`,(e,t)=>{try{let n=xG[e];if(typeof t==`string`)return[t];let r=t[n.key];if(vz(r))return e===`solana_signAllTransactions`?r.map(e=>oI(e)):r;if(typeof r==`string`)return[r]}catch(e){this.client.logger.warn(`Error extracting tx hashes from result`,e)}return[]})}async processPendingMessageEvents(){try{let e=this.client.session.keys,t=this.client.core.relayer.messages.getWithoutAck(e);for(let[e,n]of Object.entries(t))for(let t of n)try{await this.onProviderMessageEvent({topic:e,message:t,publishedAt:Date.now()})}catch{this.client.logger.warn(`Error processing pending message event for topic: ${e}, message: ${t}`)}}catch(e){this.client.logger.warn(`processPendingMessageEvents failed`,e)}}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(SB.message,e=>{this.onProviderMessageEvent(e)})}async onRelayMessage(e){let{topic:t,message:n,attestation:r,transportType:i}=e,{publicKey:a}=this.client.auth.authKeys.keys.includes(kG)?this.client.auth.authKeys.get(kG):{responseTopic:void 0,publicKey:void 0};try{let e=await this.client.core.crypto.decode(t,n,{receiverPublicKey:a,encoding:i===TB.link_mode?ER:TR});p(e)?(this.client.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e,attestation:r,transportType:i,encryptedId:IR(n)})):ue(e)?(await this.client.core.history.resolve(e),await this.onRelayEventResponse({topic:t,payload:e,transportType:i}),this.client.core.history.delete(t,e.id)):await this.onRelayEventUnknownPayload({topic:t,payload:e,transportType:i}),await this.client.core.relayer.messages.ack(t,n)}catch(e){this.client.logger.error(e)}}registerExpirerEvents(){this.client.core.expirer.on(IB.expired,async e=>{let{topic:t,id:n}=YP(e.target);if(n&&this.client.pendingRequest.keys.includes(n))return await this.deletePendingSessionRequest(n,Q(`EXPIRED`),!0);if(n&&this.client.auth.requests.keys.includes(n))return await this.deletePendingAuthRequest(n,Q(`EXPIRED`),!0);t?this.client.session.keys.includes(t)&&(await this.deleteSession({topic:t,expirerHasDeleted:!0}),this.client.events.emit(`session_expire`,{topic:t})):n&&(await this.deleteProposal(n,!0),this.client.events.emit(`proposal_expire`,{id:n}))})}registerPairingEvents(){this.client.core.pairing.events.on(MB.create,e=>this.onPairingCreated(e)),this.client.core.pairing.events.on(MB.delete,e=>{this.addToRecentlyDeleted(e.topic,`pairing`)})}isValidPairingTopic(e){if(!xz(e,!1)){let{message:t}=Q(`MISSING_OR_INVALID`,`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.client.core.pairing.pairings.keys.includes(e)){let{message:t}=Q(`NO_MATCHING_KEY`,`pairing topic doesn't exist: ${e}`);throw Error(t)}if(ZP(this.client.core.pairing.pairings.get(e).expiry)){let{message:t}=Q(`EXPIRED`,`pairing topic: ${e}`);throw Error(t)}}async isValidSessionTopic(e){if(!xz(e,!1)){let{message:t}=Q(`MISSING_OR_INVALID`,`session topic should be a string: ${e}`);throw Error(t)}if(this.checkRecentlyDeleted(e),!this.client.session.keys.includes(e)){let{message:t}=Q(`NO_MATCHING_KEY`,`session topic doesn't exist: ${e}`);throw Error(t)}if(ZP(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});let{message:t}=Q(`EXPIRED`,`session topic: ${e}`);throw Error(t)}if(!this.client.core.crypto.keychain.has(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`session topic does not exist in keychain: ${e}`);throw await this.deleteSession({topic:e}),Error(t)}}async isValidSessionOrPairingTopic(e){if(this.checkRecentlyDeleted(e),this.client.session.keys.includes(e))await this.isValidSessionTopic(e);else if(this.client.core.pairing.pairings.keys.includes(e))this.isValidPairingTopic(e);else if(xz(e,!1)){let{message:t}=Q(`NO_MATCHING_KEY`,`session or pairing topic doesn't exist: ${e}`);throw Error(t)}else{let{message:t}=Q(`MISSING_OR_INVALID`,`session or pairing topic should be a string: ${e}`);throw Error(t)}}async isValidProposalId(e){if(!Vz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`proposal id should be a number: ${e}`);throw Error(t)}if(!this.client.proposal.keys.includes(e)){let{message:t}=Q(`NO_MATCHING_KEY`,`proposal id doesn't exist: ${e}`);throw Error(t)}if(ZP(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);let{message:t}=Q(`EXPIRED`,`proposal id: ${e}`);throw Error(t)}}},BG=class extends EW{constructor(e,t){super(e,t,pG,uG),this.core=e,this.logger=t}},VG=class extends EW{constructor(e,t){super(e,t,hG,uG),this.core=e,this.logger=t}},HG=class extends EW{constructor(e,t){super(e,t,SG,uG,e=>e.id),this.core=e,this.logger=t}},UG=class extends EW{constructor(e,t){super(e,t,TG,OG,()=>kG),this.core=e,this.logger=t}},WG=class extends EW{constructor(e,t){super(e,t,EG,OG),this.core=e,this.logger=t}},GG=class extends EW{constructor(e,t){super(e,t,DG,OG,e=>e.id),this.core=e,this.logger=t}},KG=Object.defineProperty,qG=(e,t,n)=>t in e?KG(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,JG=(e,t,n)=>qG(e,typeof t==`symbol`?t:t+``,n),YG=class{constructor(e,t){this.core=e,this.logger=t,JG(this,`authKeys`),JG(this,`pairingTopics`),JG(this,`requests`),this.authKeys=new UG(this.core,this.logger),this.pairingTopics=new WG(this.core,this.logger),this.requests=new GG(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}},XG=Object.defineProperty,ZG=(e,t,n)=>t in e?XG(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,QG=(e,t,n)=>ZG(e,typeof t==`symbol`?t:t+``,n),$G=class e extends er{constructor(e){super(e),QG(this,`protocol`,`wc`),QG(this,`version`,2),QG(this,`name`,dG.name),QG(this,`metadata`),QG(this,`core`),QG(this,`logger`),QG(this,`events`,new jt.EventEmitter),QG(this,`engine`),QG(this,`session`),QG(this,`proposal`),QG(this,`pendingRequest`),QG(this,`auth`),QG(this,`signConfig`),QG(this,`on`,(e,t)=>this.events.on(e,t)),QG(this,`once`,(e,t)=>this.events.once(e,t)),QG(this,`off`,(e,t)=>this.events.off(e,t)),QG(this,`removeListener`,(e,t)=>this.events.removeListener(e,t)),QG(this,`removeAllListeners`,e=>this.events.removeAllListeners(e)),QG(this,`connect`,async e=>{try{return await this.engine.connect(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`pair`,async e=>{try{return await this.engine.pair(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`approve`,async e=>{try{return await this.engine.approve(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`reject`,async e=>{try{return await this.engine.reject(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`update`,async e=>{try{return await this.engine.update(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`extend`,async e=>{try{return await this.engine.extend(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`request`,async e=>{try{return await this.engine.request(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`respond`,async e=>{try{return await this.engine.respond(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`ping`,async e=>{try{return await this.engine.ping(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`emit`,async e=>{try{return await this.engine.emit(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`disconnect`,async e=>{try{return await this.engine.disconnect(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`find`,e=>{try{return this.engine.find(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`getPendingSessionRequests`,()=>{try{return this.engine.getPendingSessionRequests()}catch(e){throw this.logger.error(e.message),e}}),QG(this,`authenticate`,async(e,t)=>{try{return await this.engine.authenticate(e,t)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`formatAuthMessage`,e=>{try{return this.engine.formatAuthMessage(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`approveSessionAuthenticate`,async e=>{try{return await this.engine.approveSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`rejectSessionAuthenticate`,async e=>{try{return await this.engine.rejectSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),this.name=e?.name||dG.name,this.metadata=e?.metadata||IP(),this.signConfig=e?.signConfig;let t=typeof e?.logger<`u`&&typeof e?.logger!=`string`?e.logger:(0,v.default)(x({level:e?.logger||dG.logger}));this.core=e?.core||new cG(e),this.logger=g(t,this.name),this.session=new VG(this.core,this.logger),this.proposal=new BG(this.core,this.logger),this.pendingRequest=new HG(this.core,this.logger),this.engine=new zG(this),this.auth=new YG(this.core,this.logger)}static async init(t){let n=new e(t);return await n.initialize(),n}get context(){return D(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()},(0,q.toMiliseconds)(q.ONE_SECOND))}catch(e){throw this.logger.info(`SignClient Initialization Failure`),this.logger.error(e.message),e}}},eK=`error`,tK=`wss://relay.walletconnect.org`,nK=`wc@2:universal_provider:`,rK=`https://rpc.walletconnect.org/v1/`,iK=`generic`,aK=`${rK}bundler`,oK={DEFAULT_CHAIN_CHANGED:`default_chain_changed`};function sK(){}function cK(e){return e==null||typeof e!=`object`&&typeof e!=`function`}function lK(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function uK(e){if(cK(e))return e;if(Array.isArray(e)||lK(e)||e instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer)return e.slice(0);let t=Object.getPrototypeOf(e),n=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new n(e);if(e instanceof RegExp){let t=new n(e);return t.lastIndex=e.lastIndex,t}if(e instanceof DataView)return new n(e.buffer.slice(0));if(e instanceof Error){let t=new n(e.message);return t.stack=e.stack,t.name=e.name,t.cause=e.cause,t}return typeof File<`u`&&e instanceof File?new n([e],e.name,{type:e.type,lastModified:e.lastModified}):typeof e==`object`?Object.assign(Object.create(t),e):e}function dK(e){return typeof e==`object`&&!!e}function fK(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function pK(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var mK=`[object RegExp]`,hK=`[object String]`,gK=`[object Number]`,_K=`[object Boolean]`,vK=`[object Arguments]`,yK=`[object Symbol]`,bK=`[object Date]`,xK=`[object Map]`,SK=`[object Set]`,CK=`[object Array]`,wK=`[object ArrayBuffer]`,TK=`[object Object]`,EK=`[object DataView]`,DK=`[object Uint8Array]`,OK=`[object Uint8ClampedArray]`,kK=`[object Uint16Array]`,AK=`[object Uint32Array]`,jK=`[object Int8Array]`,MK=`[object Int16Array]`,NK=`[object Int32Array]`,PK=`[object Float32Array]`,FK=`[object Float64Array]`;function IK(e,t){return LK(e,void 0,e,new Map,t)}function LK(e,t,n,r=new Map,i=void 0){let a=i?.(e,t,n,r);if(a!=null)return a;if(cK(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=LK(e[a],a,n,r,i);return Object.hasOwn(e,`index`)&&(t.index=e.index),Object.hasOwn(e,`input`)&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){let t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){let t=new Map;r.set(e,t);for(let[a,o]of e)t.set(a,LK(o,a,n,r,i));return t}if(e instanceof Set){let t=new Set;r.set(e,t);for(let a of e)t.add(LK(a,void 0,n,r,i));return t}if(typeof Buffer<`u`&&Buffer.isBuffer(e))return e.subarray();if(lK(e)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=LK(e[a],a,n,r,i);return t}if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){let t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return r.set(e,t),RK(t,e,n,r,i),t}if(typeof File<`u`&&e instanceof File){let t=new File([e],e.name,{type:e.type});return r.set(e,t),RK(t,e,n,r,i),t}if(e instanceof Blob){let t=new Blob([e],{type:e.type});return r.set(e,t),RK(t,e,n,r,i),t}if(e instanceof Error){let t=new e.constructor;return r.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,RK(t,e,n,r,i),t}if(typeof e==`object`&&zK(e)){let t=Object.create(Object.getPrototypeOf(e));return r.set(e,t),RK(t,e,n,r,i),t}return e}function RK(e,t,n=e,r,i){let a=[...Object.keys(t),...fK(t)];for(let o=0;o<a.length;o++){let s=a[o],c=Object.getOwnPropertyDescriptor(e,s);(c==null||c.writable)&&(e[s]=LK(t[s],s,n,r,i))}}function zK(e){switch(pK(e)){case vK:case CK:case wK:case EK:case _K:case bK:case PK:case FK:case jK:case MK:case NK:case xK:case gK:case TK:case mK:case SK:case hK:case yK:case DK:case OK:case kK:case AK:return!0;default:return!1}}function BK(e,t){return IK(e,(n,r,i,a)=>{let o=t?.(n,r,i,a);if(o!=null)return o;if(typeof e==`object`)switch(Object.prototype.toString.call(e)){case gK:case hK:case _K:{let t=new e.constructor(e?.valueOf());return RK(t,e),t}case vK:{let t={};return RK(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}})}function VK(e){return BK(e)}function HK(e){return typeof e==`object`&&!!e&&pK(e)===`[object Arguments]`}function UK(e){return lK(e)}function WK(e){if(typeof e!=`object`||!e)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!==`[object Object]`){let t=e[Symbol.toStringTag];return t==null||!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable?!1:e.toString()===`[object ${t}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function GK(e,...t){let n=t.slice(0,-1),r=t[t.length-1],i=e;for(let e=0;e<n.length;e++){let t=n[e];i=KK(i,t,r,new Map)}return i}function KK(e,t,n,r){if(cK(e)&&(e=Object(e)),typeof t!=`object`||!t)return e;if(r.has(t))return uK(r.get(t));if(r.set(t,e),Array.isArray(t)){t=t.slice();for(let e=0;e<t.length;e++)t[e]=t[e]??void 0}let i=[...Object.keys(t),...fK(t)];for(let a=0;a<i.length;a++){let o=i[a],s=t[o],c=e[o];if(HK(s)&&(s={...s}),HK(c)&&(c={...c}),typeof Buffer<`u`&&Buffer.isBuffer(s)&&(s=VK(s)),Array.isArray(s))if(typeof c==`object`&&c){let e=[],t=Reflect.ownKeys(c);for(let n=0;n<t.length;n++){let r=t[n];e[r]=c[r]}c=e}else c=[];let l=n(c,s,o,e,t,r);l==null?Array.isArray(s)||dK(c)&&dK(s)?e[o]=KK(c,s,n,r):c==null&&WK(s)?e[o]=KK({},s,n,r):c==null&&UK(s)?e[o]=VK(s):(c===void 0||s!==void 0)&&(e[o]=s):e[o]=l}return e}function qK(e,...t){return GK(e,...t,sK)}var JK=Object.defineProperty,YK=Object.defineProperties,XK=Object.getOwnPropertyDescriptors,ZK=Object.getOwnPropertySymbols,QK=Object.prototype.hasOwnProperty,$K=Object.prototype.propertyIsEnumerable,eq=(e,t,n)=>t in e?JK(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tq=(e,t)=>{for(var n in t||={})QK.call(t,n)&&eq(e,n,t[n]);if(ZK)for(var n of ZK(t))$K.call(t,n)&&eq(e,n,t[n]);return e},nq=(e,t)=>YK(e,XK(t));function rq(e,t,n){let r=TP(e);return t.rpcMap?.[r.reference]||`${rK}?chainId=${r.namespace}:${r.reference}&projectId=${n}`}function iq(e){return e.includes(`:`)?e.split(`:`)[1]:e}function aq(e){return e.map(e=>`${e.split(`:`)[0]}:${e.split(`:`)[1]}`)}function oq(e,t){let n=Object.keys(t.namespaces).filter(t=>t.includes(e));if(!n.length)return[];let r=[];return n.forEach(e=>{let n=t.namespaces[e].accounts;r.push(...n)}),r}function sq(e={},t={}){return qK(cq(e),cq(t))}function cq(e){let t={};if(!yz(e))return t;for(let[n,r]of Object.entries(e)){let e=dz(n)?[n]:r.chains,i=r.methods||[],a=r.events||[],o=r.rpcMap||{},s=fz(n);t[s]=nq(tq(tq({},t[s]),r),{chains:$P(e,t[s]?.chains),methods:$P(i,t[s]?.methods),events:$P(a,t[s]?.events),rpcMap:tq(tq({},o),t[s]?.rpcMap)})}return t}function lq(e){return e.includes(`:`)?e.split(`:`)[2]:e}function uq(e){let t={};for(let[n,r]of Object.entries(e)){let e=r.methods||[],i=r.events||[],a=r.accounts||[];t[n]={chains:dz(n)?[n]:r.chains?r.chains:aq(r.accounts),methods:e,events:i,accounts:a}}return t}function dq(e){return typeof e==`number`?e:e.includes(`0x`)?parseInt(e,16):(e=e.includes(`:`)?e.split(`:`)[1]:e,isNaN(Number(e))?e:Number(e))}var fq={},pq=e=>fq[e],mq=(e,t)=>{fq[e]=t},hq=Object.defineProperty,gq=(e,t,n)=>t in e?hq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_q=(e,t,n)=>gq(e,typeof t==`symbol`?t:t+``,n),vq=class{constructor(e){_q(this,`name`,`polkadot`),_q(this,`client`),_q(this,`httpProviders`),_q(this,`events`),_q(this,`namespace`),_q(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=iq(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}},yq=Object.defineProperty,bq=Object.defineProperties,xq=Object.getOwnPropertyDescriptors,Sq=Object.getOwnPropertySymbols,Cq=Object.prototype.hasOwnProperty,wq=Object.prototype.propertyIsEnumerable,Tq=(e,t,n)=>t in e?yq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Eq=(e,t)=>{for(var n in t||={})Cq.call(t,n)&&Tq(e,n,t[n]);if(Sq)for(var n of Sq(t))wq.call(t,n)&&Tq(e,n,t[n]);return e},Dq=(e,t)=>bq(e,xq(t)),Oq=(e,t,n)=>Tq(e,typeof t==`symbol`?t:t+``,n),kq=class{constructor(e){Oq(this,`name`,`eip155`),Oq(this,`client`),Oq(this,`chainId`),Oq(this,`namespace`),Oq(this,`httpProviders`),Oq(this,`events`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(e){switch(e.request.method){case`eth_requestAccounts`:return this.getAccounts();case`eth_accounts`:return this.getAccounts();case`wallet_switchEthereumChain`:return await this.handleSwitchChain(e);case`eth_chainId`:return parseInt(this.getDefaultChain());case`wallet_getCapabilities`:return await this.getCapabilities(e);case`wallet_getCallsStatus`:return await this.getCallStatus(e)}return this.namespace.methods.includes(e.request.method)?await this.client.request(e):this.getHttpProvider().request(e.request)}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(parseInt(e),t),this.chainId=parseInt(e),this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}createHttpProvider(e,t){let n=t||rq(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=parseInt(iq(t));e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}getHttpProvider(){let e=this.chainId,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}async handleSwitchChain(e){let t=e.request.params?e.request.params[0]?.chainId:`0x0`;t=t.startsWith(`0x`)?t:`0x${t}`;let n=parseInt(t,16);if(this.isChainApproved(n))this.setDefaultChain(`${n}`);else if(this.namespace.methods.includes(`wallet_switchEthereumChain`))await this.client.request({topic:e.topic,request:{method:e.request.method,params:[{chainId:t}]},chainId:this.namespace.chains?.[0]}),this.setDefaultChain(`${n}`);else throw Error(`Failed to switch to chain 'eip155:${n}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(e){return this.namespace.chains.includes(`${this.name}:${e}`)}async getCapabilities(e){let t=e.request?.params?.[0];if(!t)throw Error("Missing address parameter in `wallet_getCapabilities` request");let n=this.client.session.get(e.topic),r=n?.sessionProperties?.capabilities||{};if(r!=null&&r[t])return r?.[t];let i=await this.client.request(e);try{await this.client.session.update(e.topic,{sessionProperties:Dq(Eq({},n.sessionProperties||{}),{capabilities:Dq(Eq({},r||{}),{[t]:i})})})}catch(e){console.warn(`Failed to update session with capabilities`,e)}return i}async getCallStatus(e){let t=this.client.session.get(e.topic),n=t.sessionProperties?.bundler_name;if(n){let t=this.getBundlerUrl(e.chainId,n);try{return await this.getUserOperationReceipt(t,e)}catch(e){console.warn(`Failed to fetch call status from bundler`,e,t)}}let r=t.sessionProperties?.bundler_url;if(r)try{return await this.getUserOperationReceipt(r,e)}catch(e){console.warn(`Failed to fetch call status from custom bundler`,e,r)}if(this.namespace.methods.includes(e.request.method))return await this.client.request(e);throw Error(`Fetching call status not approved by the wallet.`)}async getUserOperationReceipt(e,t){let n=new URL(e),r=await fetch(n,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(te(`eth_getUserOperationReceipt`,[t.request.params?.[0]]))});if(!r.ok)throw Error(`Failed to fetch user operation receipt - ${r.status}`);return await r.json()}getBundlerUrl(e,t){return`${aK}?projectId=${this.client.core.projectId}&chainId=${e}&bundler=${t}`}},Aq=Object.defineProperty,jq=(e,t,n)=>t in e?Aq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Mq=(e,t,n)=>jq(e,typeof t==`symbol`?t:t+``,n),Nq=class{constructor(e){Mq(this,`name`,`solana`),Mq(this,`client`),Mq(this,`httpProviders`),Mq(this,`events`),Mq(this,`namespace`),Mq(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=iq(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}},Pq=Object.defineProperty,Fq=(e,t,n)=>t in e?Pq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Iq=(e,t,n)=>Fq(e,typeof t==`symbol`?t:t+``,n),Lq=class{constructor(e){Iq(this,`name`,`cosmos`),Iq(this,`client`),Iq(this,`httpProviders`),Iq(this,`events`),Iq(this,`namespace`),Iq(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=iq(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}},Rq=Object.defineProperty,zq=(e,t,n)=>t in e?Rq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Bq=(e,t,n)=>zq(e,typeof t==`symbol`?t:t+``,n),Vq=class{constructor(e){Bq(this,`name`,`algorand`),Bq(this,`client`),Bq(this,`httpProviders`),Bq(this,`events`),Bq(this,`namespace`),Bq(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(!this.httpProviders[e]){let n=t||rq(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{e[t]=this.createHttpProvider(t,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace,this.client.core.projectId);return typeof n>`u`?void 0:new L(new fe(n,pq(`disableProviderPing`)))}},Hq=Object.defineProperty,Uq=(e,t,n)=>t in e?Hq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wq=(e,t,n)=>Uq(e,typeof t==`symbol`?t:t+``,n),Gq=class{constructor(e){Wq(this,`name`,`cip34`),Wq(this,`client`),Wq(this,`httpProviders`),Wq(this,`events`),Wq(this,`namespace`),Wq(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=this.getCardanoRPCUrl(t),r=iq(t);e[r]=this.createHttpProvider(r,n)}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}getCardanoRPCUrl(e){let t=this.namespace.rpcMap;if(t)return t[e]}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||this.getCardanoRPCUrl(e);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}},Kq=Object.defineProperty,qq=(e,t,n)=>t in e?Kq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Jq=(e,t,n)=>qq(e,typeof t==`symbol`?t:t+``,n),Yq=class{constructor(e){Jq(this,`name`,`elrond`),Jq(this,`client`),Jq(this,`httpProviders`),Jq(this,`events`),Jq(this,`namespace`),Jq(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=iq(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}},Xq=Object.defineProperty,Zq=(e,t,n)=>t in e?Xq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qq=(e,t,n)=>Zq(e,typeof t==`symbol`?t:t+``,n),$q=class{constructor(e){Qq(this,`name`,`multiversx`),Qq(this,`client`),Qq(this,`httpProviders`),Qq(this,`events`),Qq(this,`namespace`),Qq(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=iq(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}},eJ=Object.defineProperty,tJ=(e,t,n)=>t in e?eJ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,nJ=(e,t,n)=>tJ(e,typeof t==`symbol`?t:t+``,n),rJ=class{constructor(e){nJ(this,`name`,`near`),nJ(this,`client`),nJ(this,`httpProviders`),nJ(this,`events`),nJ(this,`namespace`),nJ(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(this.chainId=e,!this.httpProviders[e]){let n=t||rq(`${this.name}:${e}`,this.namespace);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{e[t]=this.createHttpProvider(t,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace);return typeof n>`u`?void 0:new L(new fe(n,pq(`disableProviderPing`)))}},iJ=Object.defineProperty,aJ=(e,t,n)=>t in e?iJ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oJ=(e,t,n)=>aJ(e,typeof t==`symbol`?t:t+``,n),sJ=class{constructor(e){oJ(this,`name`,`tezos`),oJ(this,`client`),oJ(this,`httpProviders`),oJ(this,`events`),oJ(this,`namespace`),oJ(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(this.chainId=e,!this.httpProviders[e]){let n=t||rq(`${this.name}:${e}`,this.namespace);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{e[t]=this.createHttpProvider(t)}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace);return typeof n>`u`?void 0:new L(new fe(n))}},cJ=Object.defineProperty,lJ=(e,t,n)=>t in e?cJ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,uJ=(e,t,n)=>lJ(e,typeof t==`symbol`?t:t+``,n),dJ=class{constructor(e){uJ(this,`name`,iK),uJ(this,`client`),uJ(this,`httpProviders`),uJ(this,`events`),uJ(this,`namespace`),uJ(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace.chains=[...new Set((this.namespace.chains||[]).concat(e.chains||[]))],this.namespace.accounts=[...new Set((this.namespace.accounts||[]).concat(e.accounts||[]))],this.namespace.methods=[...new Set((this.namespace.methods||[]).concat(e.methods||[]))],this.namespace.events=[...new Set((this.namespace.events||[]).concat(e.events||[]))],this.httpProviders=this.createHttpProviders()}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider(e.chainId).request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){var e;let t={};return(e=this.namespace?.accounts)==null||e.forEach(e=>{let n=TP(e);t[`${n.namespace}:${n.reference}`]=this.createHttpProvider(e)}),t}getHttpProvider(e){let t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}},fJ=Object.defineProperty,pJ=Object.defineProperties,mJ=Object.getOwnPropertyDescriptors,hJ=Object.getOwnPropertySymbols,gJ=Object.prototype.hasOwnProperty,_J=Object.prototype.propertyIsEnumerable,vJ=(e,t,n)=>t in e?fJ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,yJ=(e,t)=>{for(var n in t||={})gJ.call(t,n)&&vJ(e,n,t[n]);if(hJ)for(var n of hJ(t))_J.call(t,n)&&vJ(e,n,t[n]);return e},bJ=(e,t)=>pJ(e,mJ(t)),xJ=(e,t,n)=>vJ(e,typeof t==`symbol`?t:t+``,n),SJ=class e{constructor(e){xJ(this,`client`),xJ(this,`namespaces`),xJ(this,`optionalNamespaces`),xJ(this,`sessionProperties`),xJ(this,`scopedProperties`),xJ(this,`events`,new jt.default),xJ(this,`rpcProviders`,{}),xJ(this,`session`),xJ(this,`providerOpts`),xJ(this,`logger`),xJ(this,`uri`),xJ(this,`disableProviderPing`,!1),this.providerOpts=e,this.logger=typeof e?.logger<`u`&&typeof e?.logger!=`string`?e.logger:(0,v.default)(x({level:e?.logger||eK})),this.disableProviderPing=e?.disableProviderPing||!1}static async init(t){let n=new e(t);return await n.initialize(),n}async request(e,t,n){let[r,i]=this.validateChain(t);if(!this.session)throw Error(`Please call connect() before request()`);return await this.getProvider(r).request({request:yJ({},e),chainId:`${r}:${i}`,topic:this.session.topic,expiry:n})}sendAsync(e,t,n,r){let i=new Date().getTime();this.request(e,n,r).then(e=>t(null,d(i,e))).catch(e=>t(e,void 0))}async enable(){if(!this.client)throw 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(){if(!this.session)throw Error(`Please call connect() before enable()`);await this.client.disconnect({topic:this.session?.topic,reason:_z(`USER_DISCONNECTED`)}),await this.cleanup()}async connect(e){if(!this.client)throw Error(`Sign Client not initialized`);if(this.setNamespaces(e),await this.cleanupPendingPairings(),!e.skipPairing)return await this.pair(e.pairingTopic)}async authenticate(e,t){if(!this.client)throw Error(`Sign Client not initialized`);this.setNamespaces(e),await this.cleanupPendingPairings();let{uri:n,response:r}=await this.client.authenticate(e,t);n&&(this.uri=n,this.events.emit(`display_uri`,n));let i=await r();if(this.session=i.session,this.session){let e=uq(this.session.namespaces);this.namespaces=sq(this.namespaces,e),await this.persist(`namespaces`,this.namespaces),this.onConnect()}return i}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}removeListener(e,t){this.events.removeListener(e,t)}off(e,t){this.events.off(e,t)}get isWalletConnect(){return!0}async pair(e){let{uri:t,approval:n}=await this.client.connect({pairingTopic:e,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties});t&&(this.uri=t,this.events.emit(`display_uri`,t));let r=await n();this.session=r;let i=uq(r.namespaces);return this.namespaces=sq(this.namespaces,i),await this.persist(`namespaces`,this.namespaces),await this.persist(`optionalNamespaces`,this.optionalNamespaces),this.onConnect(),this.session}setDefaultChain(e,t){try{if(!this.session)return;let[n,r]=this.validateChain(e),i=this.getProvider(n);i.name===iK?i.setDefaultChain(`${n}:${r}`,t):i.setDefaultChain(r,t)}catch(e){if(!/Please call connect/.test(e.message))throw e}}async cleanupPendingPairings(e={}){this.logger.info(`Cleaning up inactive pairings...`);let t=this.client.pairing.getAll();if(vz(t)){for(let n of t)e.deletePairings?this.client.core.expirer.set(n.topic,0):await this.client.core.relayer.subscriber.unsubscribe(n.topic);this.logger.info(`Inactive pairings cleared: ${t.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(){if(this.client=this.providerOpts.client||await $G.init({core:this.providerOpts.core,logger:this.providerOpts.logger||eK,relayUrl:this.providerOpts.relayUrl||tK,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(e){throw this.logger.error(`Failed to get session`,e),Error(`The provided session: ${this.providerOpts?.session?.topic} doesn't exist in the Sign client`)}else{let e=this.client.session.getAll();this.session=e[0]}this.logger.trace(`SignClient Initialized`)}createProviders(){if(!this.client)throw Error(`Sign Client not initialized`);if(!this.session)throw Error(`Session not initialized. Please call connect() before enable()`);let e=[...new Set(Object.keys(this.session.namespaces).map(e=>fz(e)))];mq(`client`,this.client),mq(`events`,this.events),mq(`disableProviderPing`,this.disableProviderPing),e.forEach(e=>{if(!this.session)return;let t=oq(e,this.session),n=aq(t),r=bJ(yJ({},sq(this.namespaces,this.optionalNamespaces)[e]),{accounts:t,chains:n});switch(e){case`eip155`:this.rpcProviders[e]=new kq({namespace:r});break;case`algorand`:this.rpcProviders[e]=new Vq({namespace:r});break;case`solana`:this.rpcProviders[e]=new Nq({namespace:r});break;case`cosmos`:this.rpcProviders[e]=new Lq({namespace:r});break;case`polkadot`:this.rpcProviders[e]=new vq({namespace:r});break;case`cip34`:this.rpcProviders[e]=new Gq({namespace:r});break;case`elrond`:this.rpcProviders[e]=new Yq({namespace:r});break;case`multiversx`:this.rpcProviders[e]=new $q({namespace:r});break;case`near`:this.rpcProviders[e]=new rJ({namespace:r});break;case`tezos`:this.rpcProviders[e]=new sJ({namespace:r});break;default:this.rpcProviders[iK]?this.rpcProviders[iK].updateNamespace(r):this.rpcProviders[iK]=new dJ({namespace:r})}})}registerEventListeners(){if(typeof this.client>`u`)throw Error(`Sign Client is not initialized`);this.client.on(`session_ping`,e=>{let{topic:t}=e;t===this.session?.topic&&this.events.emit(`session_ping`,e)}),this.client.on(`session_event`,e=>{let{params:t,topic:n}=e;if(n!==this.session?.topic)return;let{event:r}=t;if(r.name===`accountsChanged`){let e=r.data;e&&vz(e)&&this.events.emit(`accountsChanged`,e.map(lq))}else if(r.name===`chainChanged`){let e=t.chainId,n=t.event.data,r=fz(e),i=dq(e)===dq(n)?e:`${r}:${dq(n)}`;this.onChainChanged(i)}else this.events.emit(r.name,r.data);this.events.emit(`session_event`,e)}),this.client.on(`session_update`,({topic:e,params:t})=>{if(e!==this.session?.topic)return;let{namespaces:n}=t,r=this.client?.session.get(e);this.session=bJ(yJ({},r),{namespaces:n}),this.onSessionUpdate(),this.events.emit(`session_update`,{topic:e,params:t})}),this.client.on(`session_delete`,async e=>{e.topic===this.session?.topic&&(await this.cleanup(),this.events.emit(`session_delete`,e),this.events.emit(`disconnect`,bJ(yJ({},_z(`USER_DISCONNECTED`)),{data:e.topic})))}),this.on(oK.DEFAULT_CHAIN_CHANGED,e=>{this.onChainChanged(e,!0)})}getProvider(e){return this.rpcProviders[e]||this.rpcProviders[iK]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(e=>{this.getProvider(e).updateNamespace(this.session?.namespaces[e])})}setNamespaces(e){let{namespaces:t,optionalNamespaces:n,sessionProperties:r,scopedProperties:i}=e;t&&Object.keys(t).length&&(this.namespaces=t),n&&Object.keys(n).length&&(this.optionalNamespaces=n),this.sessionProperties=r,this.scopedProperties=i}validateChain(e){let[t,n]=e?.split(`:`)||[``,``];if(!this.namespaces||!Object.keys(this.namespaces).length)return[t,n];if(t&&!Object.keys(this.namespaces||{}).map(e=>fz(e)).includes(t))throw Error(`Namespace '${t}' is not configured. Please call connect() first with namespace config.`);if(t&&n)return[t,n];let r=fz(Object.keys(this.namespaces)[0]);return[r,this.rpcProviders[r].getDefaultChain()]}async requestAccounts(){let[e]=this.validateChain();return await this.getProvider(e).requestAccounts()}async onChainChanged(e,t=!1){if(!this.namespaces)return;let[n,r]=this.validateChain(e);r&&(t||this.getProvider(n).setDefaultChain(r),this.namespaces[n]?this.namespaces[n].defaultChain=r:this.namespaces[`${n}:${r}`]?this.namespaces[`${n}:${r}`].defaultChain=r:this.namespaces[`${n}:${r}`]={defaultChain:r},this.events.emit(`chainChanged`,r),await this.persist(`namespaces`,this.namespaces))}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(e,t){let n=this.session?.topic||``;await this.client.core.storage.setItem(`${nK}/${e}${n}`,t)}async getFromStore(e){let t=this.session?.topic||``;return await this.client.core.storage.getItem(`${nK}/${e}${t}`)}async deleteFromStore(e){let t=this.session?.topic||``;await this.client.core.storage.removeItem(`${nK}/${e}${t}`)}async cleanupStorage(){try{if(this.client?.session.length>0)return;let e=await this.client.core.storage.getKeys();for(let t of e)t.startsWith(nK)&&await this.client.core.storage.removeItem(t)}catch(e){this.logger.warn(`Failed to cleanup storage`,e)}}},CJ={ERROR_CODE_UNRECOGNIZED_CHAIN_ID:4902,ERROR_CODE_DEFAULT:5e3,ERROR_INVALID_CHAIN_ID:32603};function wJ(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}var TJ=wJ({id:`5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`,name:`Solana`,network:`solana-mainnet`,nativeCurrency:{name:`Solana`,symbol:`SOL`,decimals:9},rpcUrls:{default:{http:[`https://rpc.walletconnect.org/v1`]}},blockExplorers:{default:{name:`Solscan`,url:`https://solscan.io`}},testnet:!1,chainNamespace:`solana`,caipNetworkId:`solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`,deprecatedCaipNetworkId:`solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ`}),EJ=wJ({id:`EtWTRABZaYq6iMfeYKouRu166VU2xqa1`,name:`Solana Devnet`,network:`solana-devnet`,nativeCurrency:{name:`Solana`,symbol:`SOL`,decimals:9},rpcUrls:{default:{http:[`https://rpc.walletconnect.org/v1`]}},blockExplorers:{default:{name:`Solscan`,url:`https://solscan.io`}},testnet:!0,chainNamespace:`solana`,caipNetworkId:`solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1`,deprecatedCaipNetworkId:`solana:8E9rvCKLFQia2Y35HXjjpWzj8weVo44K`}),DJ=wJ({id:`4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z`,name:`Solana Testnet`,network:`solana-testnet`,nativeCurrency:{name:`Solana`,symbol:`SOL`,decimals:9},rpcUrls:{default:{http:[`https://rpc.walletconnect.org/v1`]}},blockExplorers:{default:{name:`Solscan`,url:`https://solscan.io`}},testnet:!0,chainNamespace:`solana`,caipNetworkId:`solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z`});wJ({id:`000000000019d6689c085ae165831e93`,caipNetworkId:`bip122:000000000019d6689c085ae165831e93`,chainNamespace:`bip122`,name:`Bitcoin`,nativeCurrency:{name:`Bitcoin`,symbol:`BTC`,decimals:8},rpcUrls:{default:{http:[`https://rpc.walletconnect.org/v1`]}}}),wJ({id:`000000000933ea01ad0ee984209779ba`,caipNetworkId:`bip122:000000000933ea01ad0ee984209779ba`,chainNamespace:`bip122`,name:`Bitcoin Testnet`,nativeCurrency:{name:`Bitcoin`,symbol:`BTC`,decimals:8},rpcUrls:{default:{http:[`https://rpc.walletconnect.org/v1`]}},testnet:!0});var OJ={solana:[`solana_signMessage`,`solana_signTransaction`,`solana_requestAccounts`,`solana_getAccounts`,`solana_signAllTransactions`,`solana_signAndSendTransaction`],eip155:[`eth_accounts`,`eth_requestAccounts`,`eth_sendRawTransaction`,`eth_sign`,`eth_signTransaction`,`eth_signTypedData`,`eth_signTypedData_v3`,`eth_signTypedData_v4`,`eth_sendTransaction`,`personal_sign`,`wallet_switchEthereumChain`,`wallet_addEthereumChain`,`wallet_getPermissions`,`wallet_requestPermissions`,`wallet_registerOnboarding`,`wallet_watchAsset`,`wallet_scanQRCode`,`wallet_getCallsStatus`,`wallet_showCallsStatus`,`wallet_sendCalls`,`wallet_getCapabilities`,`wallet_grantPermissions`,`wallet_revokePermissions`,`wallet_getAssets`],bip122:[`sendTransfer`,`signMessage`,`signPsbt`,`getAccountAddresses`]},kJ={getMethodsByChainNamespace(e){return OJ[e]||[]},createDefaultNamespace(e){return{methods:this.getMethodsByChainNamespace(e),events:[`accountsChanged`,`chainChanged`],chains:[],rpcMap:{}}},applyNamespaceOverrides(e,t){if(!t)return{...e};let n={...e},r=new Set;if(t.methods&&Object.keys(t.methods).forEach(e=>r.add(e)),t.chains&&Object.keys(t.chains).forEach(e=>r.add(e)),t.events&&Object.keys(t.events).forEach(e=>r.add(e)),t.rpcMap&&Object.keys(t.rpcMap).forEach(e=>{let[t]=e.split(`:`);t&&r.add(t)}),r.forEach(e=>{n[e]||(n[e]=this.createDefaultNamespace(e))}),t.methods&&Object.entries(t.methods).forEach(([e,t])=>{n[e]&&(n[e].methods=t)}),t.chains&&Object.entries(t.chains).forEach(([e,t])=>{n[e]&&(n[e].chains=t)}),t.events&&Object.entries(t.events).forEach(([e,t])=>{n[e]&&(n[e].events=t)}),t.rpcMap){let e=new Set;Object.entries(t.rpcMap).forEach(([t,r])=>{let[i,a]=t.split(`:`);!i||!a||!n[i]||(n[i].rpcMap||(n[i].rpcMap={}),e.has(i)||(n[i].rpcMap={},e.add(i)),n[i].rpcMap[a]=r)})}return n},createNamespaces(e,t){let n=e.reduce((e,t)=>{let{id:n,chainNamespace:r,rpcUrls:i}=t,a=i.default.http[0];e[r]||(e[r]=this.createDefaultNamespace(r));let o=`${r}:${n}`,s=e[r];switch(s.chains.push(o),o){case TJ.caipNetworkId:s.chains.push(TJ.deprecatedCaipNetworkId);break;case EJ.caipNetworkId:s.chains.push(EJ.deprecatedCaipNetworkId);break;default:}return s?.rpcMap&&a&&(s.rpcMap[n]=a),e},{});return this.applyNamespaceOverrides(n,t)},resolveReownName:async e=>{let t=await cf.resolveName(e);return(Object.values(t?.addresses)||[])[0]?.address||!1},getChainsFromNamespaces(e={}){return Object.values(e).flatMap(e=>{let t=e.chains||[],n=e.accounts.map(e=>{let[t,n]=e.split(`:`);return`${t}:${n}`});return Array.from(new Set([...t,...n]))})},isSessionEventData(e){return typeof e==`object`&&!!e&&`id`in e&&`topic`in e&&`params`in e&&typeof e.params==`object`&&e.params!==null&&`chainId`in e.params&&`event`in e.params&&typeof e.params.event==`object`&&e.params.event!==null}},AJ=class{constructor({provider:e,caipNetworks:t,namespace:n}){this.id=B.CONNECTOR_ID.WALLET_CONNECT,this.name=lf.ConnectorNamesMap[B.CONNECTOR_ID.WALLET_CONNECT],this.type=`WALLET_CONNECT`,this.imageId=lf.ConnectorImageIds[B.CONNECTOR_ID.WALLET_CONNECT],this.caipNetworks=t,this.provider=e,this.chain=n}get chains(){return this.caipNetworks}async connectWalletConnect(){if(!await this.authenticate()){let e=y.state.universalProviderConfigOverride,t=kJ.createNamespaces(this.caipNetworks,e);await this.provider.connect({optionalNamespaces:t})}return{clientId:await this.provider.client.core.crypto.getClientId(),session:this.provider.session}}async disconnect(){await this.provider.disconnect()}async authenticate(){let e=this.chains.map(e=>e.caipNetworkId);return F.universalProviderAuthenticate({universalProvider:this.provider,chains:e,methods:jJ})}},jJ=[`eth_accounts`,`eth_requestAccounts`,`eth_sendRawTransaction`,`eth_sign`,`eth_signTransaction`,`eth_signTypedData`,`eth_signTypedData_v3`,`eth_signTypedData_v4`,`eth_sendTransaction`,`personal_sign`,`wallet_switchEthereumChain`,`wallet_addEthereumChain`,`wallet_getPermissions`,`wallet_requestPermissions`,`wallet_registerOnboarding`,`wallet_watchAsset`,`wallet_scanQRCode`,`wallet_getCallsStatus`,`wallet_sendCalls`,`wallet_getCapabilities`,`wallet_grantPermissions`,`wallet_revokePermissions`,`wallet_getAssets`],MJ=class{constructor(e){this.availableConnectors=[],this.eventListeners=new Map,e&&this.construct(e)}construct(e){this.caipNetworks=e.networks,this.projectId=e.projectId,this.namespace=e.namespace,this.adapterType=e.adapterType}get connectors(){return this.availableConnectors}get networks(){return this.caipNetworks||[]}setAuthProvider(e){this.addConnector({id:B.CONNECTOR_ID.AUTH,type:`AUTH`,name:B.CONNECTOR_NAMES.AUTH,provider:e,imageId:lf.ConnectorImageIds[B.CONNECTOR_ID.AUTH],chain:this.namespace,chains:[]})}addConnector(...e){let t=new Set;this.availableConnectors=[...e,...this.availableConnectors].filter(e=>t.has(e.id)?!1:(t.add(e.id),!0)),this.emit(`connectors`,this.availableConnectors)}setStatus(e,t){z.setStatus(e,t)}on(e,t){this.eventListeners.has(e)||this.eventListeners.set(e,new Set),this.eventListeners.get(e)?.add(t)}off(e,t){let n=this.eventListeners.get(e);n&&n.delete(t)}removeAllEventListeners(){this.eventListeners.forEach(e=>{e.clear()})}emit(e,t){let n=this.eventListeners.get(e);n&&n.forEach(e=>e(t))}async connectWalletConnect(e){return{clientId:(await this.getWalletConnectConnector().connectWalletConnect()).clientId}}async switchNetwork(e){let{caipNetwork:t,providerType:n}=e;if(!e.provider)return;let r=`provider`in e.provider?e.provider.provider:e.provider;if(n===`WALLET_CONNECT`){r.setDefaultChain(t.caipNetworkId);return}if(r&&n===`AUTH`){let e=r;await e.switchNetwork(t.caipNetworkId);let n=await e.getUser({chainId:t.caipNetworkId,preferredAccountType:y.state.defaultAccountTypes[t.chainNamespace]});this.emit(`switchNetwork`,n)}}getWalletConnectConnector(){let e=this.connectors.find(e=>e instanceof AJ);if(!e)throw Error(`WalletConnectConnector not found`);return e}},NJ=class extends MJ{setUniversalProvider(e){this.addConnector(new AJ({provider:e,caipNetworks:this.caipNetworks||[],namespace:this.namespace}))}async connect(e){return Promise.resolve({id:`WALLET_CONNECT`,type:`WALLET_CONNECT`,chainId:Number(e.chainId),provider:this.provider,address:``})}async disconnect(){try{await this.getWalletConnectConnector().disconnect()}catch(e){console.warn(`UniversalAdapter:disconnect - error`,e)}}async getAccounts({namespace:e}){let t=this.provider?.session?.namespaces?.[e]?.accounts?.map(e=>{let[,,t]=e.split(`:`);return t}).filter((e,t,n)=>n.indexOf(e)===t)||[];return Promise.resolve({accounts:t.map(t=>P.createAccount(e,t,e===`bip122`?`payment`:`eoa`))})}async syncConnectors(){return Promise.resolve()}async getBalance(e){if(!(e.caipNetwork&&u.BALANCE_SUPPORTED_CHAINS.includes(e.caipNetwork?.chainNamespace))||e.caipNetwork?.testnet)return{balance:`0.00`,symbol:e.caipNetwork?.nativeCurrency.symbol||``};if(z.state.balanceLoading&&e.chainId===G.state.activeCaipNetwork?.id)return{balance:z.state.balance||`0.00`,symbol:z.state.balanceSymbol||``};let t=(await z.fetchTokenBalance()).find(t=>t.chainId===`${e.caipNetwork?.chainNamespace}:${e.chainId}`&&t.symbol===e.caipNetwork?.nativeCurrency.symbol);return{balance:t?.quantity.numeric||`0.00`,symbol:t?.symbol||e.caipNetwork?.nativeCurrency.symbol||``}}async signMessage(e){let{provider:t,message:n,address:r}=e;if(!t)throw Error(`UniversalAdapter:signMessage - provider is undefined`);let i=``;return i=G.state.activeCaipNetwork?.chainNamespace===B.CHAIN.SOLANA?(await t.request({method:`solana_signMessage`,params:{message:Fs.encode(new TextEncoder().encode(n)),pubkey:r}},G.state.activeCaipNetwork?.caipNetworkId)).signature:await t.request({method:`personal_sign`,params:[n,r]},G.state.activeCaipNetwork?.caipNetworkId),{signature:i}}async estimateGas(){return Promise.resolve({gas:BigInt(0)})}async getProfile(){return Promise.resolve({profileImage:``,profileName:``})}async sendTransaction(){return Promise.resolve({hash:``})}walletGetAssets(e){return Promise.resolve({})}async writeContract(){return Promise.resolve({hash:``})}async getEnsAddress(){return Promise.resolve({address:!1})}parseUnits(){return 0n}formatUnits(){return`0`}async getCapabilities(){return Promise.resolve({})}async grantPermissions(){return Promise.resolve({})}async revokePermissions(){return Promise.resolve(`0x`)}async syncConnection(){return Promise.resolve({id:`WALLET_CONNECT`,type:`WALLET_CONNECT`,chainId:1,provider:this.provider,address:``})}async switchNetwork(e){let{caipNetwork:t}=e,n=this.getWalletConnectConnector();if(t.chainNamespace===B.CHAIN.EVM)try{await n.provider?.request({method:`wallet_switchEthereumChain`,params:[{chainId:Hu(t.id)}]})}catch(e){if(e.code===CJ.ERROR_CODE_UNRECOGNIZED_CHAIN_ID||e.code===CJ.ERROR_INVALID_CHAIN_ID||e.code===CJ.ERROR_CODE_DEFAULT||e?.data?.originalError?.code===CJ.ERROR_CODE_UNRECOGNIZED_CHAIN_ID)try{await n.provider?.request({method:`wallet_addEthereumChain`,params:[{chainId:Hu(t.id),rpcUrls:[t?.rpcUrls.chainDefault?.http],chainName:t.name,nativeCurrency:t.nativeCurrency,blockExplorerUrls:[t.blockExplorers?.default.url]}]})}catch{throw Error(`Chain is not supported`)}}n.provider.setDefaultChain(t.caipNetworkId)}getWalletConnectProvider(){return this.connectors.find(e=>e.type===`WALLET_CONNECT`)?.provider}},PJ=class{constructor(e){this.hasSwitchedToPreferredAccountTypeOnConnect=!1,this.chainNamespaces=[],this.reportedAlertErrors={},this.getCaipNetwork=e=>e?G.getNetworkData(e)?.caipNetwork||G.getRequestedCaipNetworks(e).filter(t=>t.chainNamespace===e)?.[0]:G.state.activeCaipNetwork||this.defaultCaipNetwork,this.getCaipNetworkId=()=>{let e=this.getCaipNetwork();if(e)return e.id},this.getCaipNetworks=e=>G.getRequestedCaipNetworks(e),this.getActiveChainNamespace=()=>G.state.activeChain,this.setRequestedCaipNetworks=(e,t)=>{G.setRequestedCaipNetworks(e,t)},this.getApprovedCaipNetworkIds=()=>G.getAllApprovedCaipNetworkIds(),this.getCaipAddress=e=>G.state.activeChain===e||!e?G.state.activeCaipAddress:G.getAccountProp(`caipAddress`,e),this.setClientId=e=>{V.setClientId(e)},this.getProvider=e=>yf.getProvider(e),this.getProviderType=e=>yf.getProviderId(e),this.getPreferredAccountType=()=>z.state.preferredAccountType,this.setCaipAddress=(e,t)=>{z.setCaipAddress(e,t)},this.setBalance=(e,t,n)=>{z.setBalance(e,t,n)},this.setProfileName=(e,t)=>{z.setProfileName(e,t)},this.setProfileImage=(e,t)=>{z.setProfileImage(e,t)},this.setUser=(e,t)=>{z.setUser(e,t),y.state.enableEmbedded&&ce.close()},this.resetAccount=e=>{z.resetAccount(e)},this.setCaipNetwork=e=>{G.setActiveCaipNetwork(e)},this.setCaipNetworkOfNamespace=(e,t)=>{G.setChainNetworkData(t,{caipNetwork:e})},this.setAllAccounts=(e,t)=>{z.setAllAccounts(e,t),y.setHasMultipleAddresses(e?.length>1)},this.setStatus=(e,t)=>{z.setStatus(e,t),_.isConnected()?E.setConnectionStatus(`connected`):E.setConnectionStatus(`disconnected`)},this.getAddressByChainNamespace=e=>G.getAccountProp(`address`,e),this.setConnectors=e=>{let t=[..._.getConnectors(),...e];_.setConnectors(t)},this.fetchIdentity=e=>V.fetchIdentity(e),this.getReownName=e=>cf.getNamesForAddress(e),this.getConnectors=()=>_.getConnectors(),this.getConnectorImage=e=>N.getConnectorImage(e),this.setConnectedWalletInfo=(e,t)=>{let n=yf.getProviderId(t),r=e?{...e,type:n}:void 0;z.setConnectedWalletInfo(r,t)},this.getIsConnectedState=()=>!!G.state.activeCaipAddress,this.addAddressLabel=(e,t,n)=>{z.addAddressLabel(e,t,n)},this.removeAddressLabel=(e,t)=>{z.removeAddressLabel(e,t)},this.getAddress=e=>G.state.activeChain===e||!e?z.state.address:G.getAccountProp(`address`,e),this.setApprovedCaipNetworksData=e=>G.setApprovedCaipNetworksData(e),this.resetNetwork=e=>{G.resetNetwork(e)},this.addConnector=e=>{_.addConnector(e)},this.resetWcConnection=()=>{H.resetWcConnection()},this.setAddressExplorerUrl=(e,t)=>{z.setAddressExplorerUrl(e,t)},this.setSmartAccountDeployed=(e,t)=>{z.setSmartAccountDeployed(e,t)},this.setSmartAccountEnabledNetworks=(e,t)=>{G.setSmartAccountEnabledNetworks(e,t)},this.setPreferredAccountType=(e,t)=>{z.setPreferredAccountType(e,t)},this.setEIP6963Enabled=e=>{y.setEIP6963Enabled(e)},this.handleUnsafeRPCRequest=()=>{if(this.isOpen()){if(this.isTransactionStackEmpty())return;this.redirect(`ApproveTransaction`)}else this.open({view:`ApproveTransaction`})},this.options=e,this.version=e.sdkVersion,this.caipNetworks=this.extendCaipNetworks(e),this.chainNamespaces=[...new Set(this.caipNetworks?.map(e=>e.chainNamespace))],this.defaultCaipNetwork=this.extendDefaultCaipNetwork(e),this.chainAdapters=this.createAdapters(e.adapters),this.initialize(e),this.sendInitializeEvent(e)}async initialize(e){this.initControllers(e),await this.initChainAdapters(),await this.injectModalUi(),await this.syncExistingConnection(),ee.set({initialized:!0})}sendInitializeEvent(e){let{...t}=e;delete t.adapters,b.sendEvent({type:`track`,event:`INITIALIZE`,properties:{...t,networks:e.networks.map(e=>e.id),siweConfig:{options:e.siweConfig?.options||{}}}})}initControllers(e){this.initializeOptionsController(e),this.initializeChainController(e),this.initializeThemeController(e),this.initializeConnectionController(e),this.initializeConnectorController()}initializeThemeController(e){e.themeMode&&A.setThemeMode(e.themeMode),e.themeVariables&&A.setThemeVariables(e.themeVariables)}initializeChainController(e){if(!this.connectionControllerClient||!this.networkControllerClient)throw Error(`ConnectionControllerClient and NetworkControllerClient must be set`);G.initialize(e.adapters??[],this.caipNetworks,{connectionControllerClient:this.connectionControllerClient,networkControllerClient:this.networkControllerClient});let t=this.getDefaultNetwork();t&&G.setActiveCaipNetwork(t)}initializeConnectionController(e){H.setWcBasic(e.basic??!1)}initializeConnectorController(){_.initialize(this.chainNamespaces)}initializeOptionsController(e){y.setDebug(e.debug!==!1),y.setEnableWalletConnect(e.enableWalletConnect!==!1),y.setEnableWalletGuide(e.enableWalletGuide!==!1),y.setEnableWallets(e.enableWallets!==!1),y.setEIP6963Enabled(e.enableEIP6963!==!1),y.setEnableNetworkSwitch(e.enableNetworkSwitch!==!1),y.setEnableAuthLogger(e.enableAuthLogger!==!1),y.setCustomRpcUrls(e.customRpcUrls),y.setSdkVersion(e.sdkVersion),y.setProjectId(e.projectId),y.setEnableEmbedded(e.enableEmbedded),y.setAllWallets(e.allWallets),y.setIncludeWalletIds(e.includeWalletIds),y.setExcludeWalletIds(e.excludeWalletIds),y.setFeaturedWalletIds(e.featuredWalletIds),y.setTokens(e.tokens),y.setTermsConditionsUrl(e.termsConditionsUrl),y.setPrivacyPolicyUrl(e.privacyPolicyUrl),y.setCustomWallets(e.customWallets),y.setFeatures(e.features),y.setAllowUnsupportedChain(e.allowUnsupportedChain),y.setDefaultAccountTypes(e.defaultAccountTypes),y.setUniversalProviderConfigOverride(e.universalProviderConfigOverride);let t=this.getDefaultMetaData();if(!e.metadata&&t&&(e.metadata=t),y.setMetadata(e.metadata),y.setDisableAppend(e.disableAppend),y.setEnableEmbedded(e.enableEmbedded),y.setSIWX(e.siwx),!e.projectId){ae.open(uf.ALERT_ERRORS.PROJECT_ID_NOT_CONFIGURED,`error`);return}if(e.adapters?.find(e=>e.namespace===B.CHAIN.EVM)&&e.siweConfig){if(e.siwx)throw Error("Cannot set both `siweConfig` and `siwx` options");y.setSIWX(e.siweConfig.mapToSIWX())}}getDefaultMetaData(){return typeof window<`u`&&typeof document<`u`?{name:document.getElementsByTagName(`title`)?.[0]?.textContent||``,description:document.querySelector(`meta[property="og:description"]`)?.content||``,url:window.location.origin,icons:[document.querySelector(`link[rel~="icon"]`)?.href||``]}:null}setUnsupportedNetwork(e){let t=this.getActiveChainNamespace();if(t){let n=gf.getUnsupportedNetwork(`${t}:${e}`);G.setActiveCaipNetwork(n)}}getDefaultNetwork(){return gf.getCaipNetworkFromStorage(this.defaultCaipNetwork)}extendCaipNetwork(e,t){return gf.extendCaipNetwork(e,{customNetworkImageUrls:t.chainImages,projectId:t.projectId})}extendCaipNetworks(e){return gf.extendCaipNetworks(e.networks,{customNetworkImageUrls:e.chainImages,customRpcUrls:e.customRpcUrls,projectId:e.projectId})}extendDefaultCaipNetwork(e){let t=e.networks.find(t=>t.id===e.defaultNetwork?.id);return t?gf.extendCaipNetwork(t,{customNetworkImageUrls:e.chainImages,customRpcUrls:e.customRpcUrls,projectId:e.projectId}):void 0}createClients(){this.connectionControllerClient={connectWalletConnect:async()=>{let e=G.state.activeChain,t=this.getAdapter(e),n=this.getCaipNetwork(e)?.id;if(!t)throw Error(`Adapter not found`);let r=await t.connectWalletConnect(n);this.close(),this.setClientId(r?.clientId||null),E.setConnectedNamespaces([...G.state.chains.keys()]),this.chainNamespaces.forEach(e=>{_.setConnectorId(K.CONNECTOR_TYPE_WALLET_CONNECT,e)}),await this.syncWalletConnectAccount()},connectExternal:async({id:e,info:t,type:n,provider:r,chain:i,caipNetwork:a})=>{let o=G.state.activeChain,s=i||o,c=this.getAdapter(s);if(i&&i!==o&&!a){let e=this.caipNetworks?.find(e=>e.chainNamespace===i);e&&this.setCaipNetwork(e)}if(!c)throw Error(`Adapter not found`);let l=this.getCaipNetwork(s),u=await c.connect({id:e,info:t,type:n,provider:r,chainId:a?.id||l?.id,rpcUrl:a?.rpcUrls?.default?.http?.[0]||l?.rpcUrls?.default?.http?.[0]});if(!u)return;E.addConnectedNamespace(s),this.syncProvider({...u,chainNamespace:s}),await this.syncAccount({...u,chainNamespace:s});let{accounts:d}=await c.getAccounts({namespace:s,id:e});this.setAllAccounts(d,s)},reconnectExternal:async({id:e,info:t,type:n,provider:r})=>{let i=G.state.activeChain,a=this.getAdapter(i);a?.reconnect&&(await a?.reconnect({id:e,info:t,type:n,provider:r,chainId:this.getCaipNetwork()?.id}),E.addConnectedNamespace(i))},disconnect:async e=>{let t=e||G.state.activeChain,n=this.getAdapter(t),r=yf.getProvider(t),i=yf.getProviderId(t);await n?.disconnect({provider:r,providerType:i}),E.removeConnectedNamespace(t),yf.resetChain(t),this.setUser(void 0,t),this.setStatus(`disconnected`,t),this.hasSwitchedToPreferredAccountTypeOnConnect=!1},checkInstalled:e=>e?e.some(e=>!!window.ethereum?.[String(e)]):!!window.ethereum,signMessage:async e=>(await this.getAdapter(G.state.activeChain)?.signMessage({message:e,address:z.state.address,provider:yf.getProvider(G.state.activeChain)}))?.signature||``,sendTransaction:async e=>{if(e.chainNamespace===B.CHAIN.EVM){let t=this.getAdapter(G.state.activeChain),n=yf.getProvider(G.state.activeChain);return(await t?.sendTransaction({...e,caipNetwork:this.getCaipNetwork(),provider:n}))?.hash||``}return``},estimateGas:async e=>{if(e.chainNamespace===B.CHAIN.EVM){let t=this.getAdapter(G.state.activeChain),n=yf.getProvider(G.state.activeChain),r=this.getCaipNetwork();if(!r)throw Error(`CaipNetwork is undefined`);return(await t?.estimateGas({...e,provider:n,caipNetwork:r}))?.gas||0n}return 0n},getEnsAvatar:async()=>(await this.getAdapter(G.state.activeChain)?.getProfile({address:z.state.address,chainId:Number(this.getCaipNetwork()?.id)}))?.profileImage||!1,getEnsAddress:async e=>{let t=this.getAdapter(G.state.activeChain),n=this.getCaipNetwork();return n&&(await t?.getEnsAddress({name:e,caipNetwork:n}))?.address||!1},writeContract:async e=>{let t=this.getAdapter(G.state.activeChain),n=this.getCaipNetwork(),r=this.getCaipAddress(),i=yf.getProvider(G.state.activeChain);if(!n||!r)throw Error(`CaipNetwork or CaipAddress is undefined`);return(await t?.writeContract({...e,caipNetwork:n,provider:i,caipAddress:r}))?.hash},parseUnits:(e,t)=>this.getAdapter(G.state.activeChain)?.parseUnits({value:e,decimals:t})??0n,formatUnits:(e,t)=>this.getAdapter(G.state.activeChain)?.formatUnits({value:e,decimals:t})??`0`,getCapabilities:async e=>await this.getAdapter(G.state.activeChain)?.getCapabilities(e),grantPermissions:async e=>await this.getAdapter(G.state.activeChain)?.grantPermissions(e),revokePermissions:async e=>{let t=this.getAdapter(G.state.activeChain);return t?.revokePermissions?await t.revokePermissions(e):`0x`},walletGetAssets:async e=>await this.getAdapter(G.state.activeChain)?.walletGetAssets(e)??{}},this.networkControllerClient={switchCaipNetwork:async e=>await this.switchCaipNetwork(e),getApprovedCaipNetworksData:async()=>this.getApprovedCaipNetworksData()},H.setClient(this.connectionControllerClient)}getApprovedCaipNetworksData(){if(yf.getProviderId(G.state.activeChain)===K.CONNECTOR_TYPE_WALLET_CONNECT){let e=this.universalProvider?.session?.namespaces;return{supportsAllNetworks:this.universalProvider?.session?.peer?.metadata.name===`MetaMask Wallet`,approvedCaipNetworkIds:this.getChainsFromNamespaces(e)}}return{supportsAllNetworks:!0,approvedCaipNetworkIds:[]}}async switchCaipNetwork(e){if(!e)return;let t=e.chainNamespace;if(this.getAddressByChainNamespace(e.chainNamespace)){let n=yf.getProvider(t),r=yf.getProviderId(t);if(e.chainNamespace===G.state.activeChain)await this.getAdapter(t)?.switchNetwork({caipNetwork:e,provider:n,providerType:r});else if(this.setCaipNetwork(e),r===K.CONNECTOR_TYPE_WALLET_CONNECT)this.syncWalletConnectAccount();else{let n=this.getAddressByChainNamespace(t);n&&this.syncAccount({address:n,chainId:e.id,chainNamespace:t})}}else this.setCaipNetwork(e)}getChainsFromNamespaces(e={}){return Object.values(e).flatMap(e=>{let t=e.chains||[],n=e.accounts.map(e=>{let{chainId:t,chainNamespace:n}=qe.parseCaipAddress(e);return`${n}:${t}`});return Array.from(new Set([...t,...n]))})}createAdapters(e){return this.createClients(),this.chainNamespaces.reduce((t,n)=>{let r=e?.find(e=>e.namespace===n);return r?(t[n]=r,t[n].namespace=n,t[n].construct({namespace:n,projectId:this.options?.projectId,networks:this.caipNetworks})):t[n]=new NJ({namespace:n,networks:this.caipNetworks}),t},{})}async initChainAdapter(e){this.onConnectors(e),this.listenAdapter(e),this.chainAdapters?.[e].syncConnectors(this.options,this),await this.createUniversalProviderForAdapter(e)}async initChainAdapters(){await Promise.all(this.chainNamespaces.map(async e=>{await this.initChainAdapter(e)}))}onConnectors(e){this.getAdapter(e)?.on(`connectors`,this.setConnectors.bind(this))}listenAdapter(e){let t=this.getAdapter(e);if(!t)return;let n=E.getConnectionStatus();n===`connected`?this.setStatus(`connecting`,e):(n===`disconnected`&&E.clearAddressCache(),this.setStatus(n,e)),t.on(`switchNetwork`,({address:t,chainId:n})=>{let r=this.caipNetworks?.find(e=>e.id===n||e.caipNetworkId===n),i=G.state.activeChain===e,a=G.getAccountProp(`address`,e);if(r){let r=i&&t?t:a;r&&this.syncAccount({address:r,chainId:n,chainNamespace:e})}else this.setUnsupportedNetwork(n)}),t.on(`disconnect`,this.disconnect.bind(this,e)),t.on(`pendingTransactions`,()=>{let e=z.state.address,t=G.state.activeCaipNetwork;!e||!t?.id||this.updateNativeBalance(e,t.id,t.chainNamespace)}),t.on(`accountChanged`,({address:t,chainId:n})=>{let r=G.state.activeChain===e;r&&n?this.syncAccount({address:t,chainId:n,chainNamespace:e}):r&&G.state.activeCaipNetwork?.id?this.syncAccount({address:t,chainId:G.state.activeCaipNetwork?.id,chainNamespace:e}):this.syncAccountInfo(t,n,e)})}async createUniversalProviderForAdapter(e){await this.getUniversalProvider(),this.universalProvider&&this.chainAdapters?.[e]?.setUniversalProvider?.(this.universalProvider)}async syncExistingConnection(){await Promise.allSettled(this.chainNamespaces.map(e=>this.syncNamespaceConnection(e)))}async syncNamespaceConnection(e){try{let t=_.getConnectorId(e);switch(this.setStatus(`connecting`,e),t){case B.CONNECTOR_ID.WALLET_CONNECT:await this.syncWalletConnectAccount();break;case B.CONNECTOR_ID.AUTH:break;default:await this.syncAdapterConnection(e)}}catch(t){console.warn(`AppKit couldn't sync existing connection`,t),this.setStatus(`disconnected`,e)}}async syncAdapterConnection(e){let t=this.getAdapter(e),n=_.getConnectorId(e),r=this.getCaipNetwork(e),i=_.getConnectors(e).find(e=>e.id===n);try{if(!t||!i)throw Error(`Adapter or connector not found for namespace ${e}`);if(!r?.id)throw Error(`CaipNetwork not found`);let n=await t?.syncConnection({namespace:e,id:i.id,chainId:r.id,rpcUrl:r?.rpcUrls?.default?.http?.[0]});if(n){let r=await t?.getAccounts({namespace:e,id:i.id});r&&r.accounts.length>0?this.setAllAccounts(r.accounts,e):this.setAllAccounts([P.createAccount(e,n.address,`eoa`)],e),this.syncProvider({...n,chainNamespace:e}),await this.syncAccount({...n,chainNamespace:e}),this.setStatus(`connected`,e)}else this.setStatus(`disconnected`,e)}catch{this.setStatus(`disconnected`,e)}}async syncWalletConnectAccount(){let e=this.chainNamespaces.map(async e=>{let t=this.getAdapter(e),n=this.universalProvider?.session?.namespaces?.[e]?.accounts||[],r=G.state.activeCaipNetwork?.id,i=n.find(e=>{let{chainId:t}=qe.parseCaipAddress(e);return t===r?.toString()})||n[0];if(i){let n=qe.validateCaipAddress(i),{chainId:r,address:a}=qe.parseCaipAddress(n);if(yf.setProviderId(e,K.CONNECTOR_TYPE_WALLET_CONNECT),this.caipNetworks&&G.state.activeCaipNetwork&&t?.namespace!==B.CHAIN.EVM){let n=t?.getWalletConnectProvider({caipNetworks:this.caipNetworks,provider:this.universalProvider,activeCaipNetwork:G.state.activeCaipNetwork});yf.setProvider(e,n)}else yf.setProvider(e,this.universalProvider);_.setConnectorId(B.CONNECTOR_ID.WALLET_CONNECT,e),E.addConnectedNamespace(e),this.syncWalletConnectAccounts(e),await this.syncAccount({address:a,chainId:r,chainNamespace:e})}else this.setStatus(`disconnected`,e);await G.setApprovedCaipNetworksData(e)});await Promise.all(e)}syncWalletConnectAccounts(e){let t=this.universalProvider?.session?.namespaces?.[e]?.accounts?.map(e=>{let{address:t}=qe.parseCaipAddress(e);return t}).filter((e,t,n)=>n.indexOf(e)===t);t&&this.setAllAccounts(t.map(t=>P.createAccount(e,t,e===`bip122`?`payment`:`eoa`)),e)}syncProvider({type:e,provider:t,id:n,chainNamespace:r}){yf.setProviderId(r,e),yf.setProvider(r,t),_.setConnectorId(n,r)}async syncAccount(e){let t=e.chainNamespace===G.state.activeChain,n=G.getCaipNetworkByNamespace(e.chainNamespace,e.chainId),{address:r,chainId:i,chainNamespace:a}=e,{chainId:o}=E.getActiveNetworkProps(),s=i||o,c=G.state.activeCaipNetwork?.name===B.UNSUPPORTED_NETWORK_NAME,l=G.getNetworkProp(`supportsAllNetworks`,a);if(this.setStatus(`connected`,a),!(c&&!l)&&s){let e=this.caipNetworks?.find(e=>e.id.toString()===s.toString()),i=this.caipNetworks?.find(e=>e.chainNamespace===a);if(!l&&!e&&!i){let t=this.getApprovedCaipNetworkIds()||[],n=t.find(e=>qe.parseCaipNetworkId(e)?.chainId===s.toString()),r=t.find(e=>qe.parseCaipNetworkId(e)?.chainNamespace===a);e=this.caipNetworks?.find(e=>e.caipNetworkId===n),i=this.caipNetworks?.find(e=>e.caipNetworkId===r||`deprecatedCaipNetworkId`in e&&e.deprecatedCaipNetworkId===r)}let o=e||i;o?.chainNamespace===G.state.activeChain?y.state.enableNetworkSwitch&&!y.state.allowUnsupportedChain&&G.state.activeCaipNetwork?.name===B.UNSUPPORTED_NETWORK_NAME?G.showUnsupportedChainUI():this.setCaipNetwork(o):t||n&&this.setCaipNetworkOfNamespace(n,a),this.syncConnectedWalletInfo(a),he.isLowerCaseMatch(r,z.state.address)||this.syncAccountInfo(r,o?.id,a),t?await this.syncBalance({address:r,chainId:o?.id,chainNamespace:a}):await this.syncBalance({address:r,chainId:n?.id,chainNamespace:a})}}async syncAccountInfo(e,t,n){let r=this.getCaipAddress(n),i=t||r?.split(`:`)[1];if(!i)return;let a=`${n}:${i}:${e}`;this.setCaipAddress(a,n),await this.syncIdentity({address:e,chainId:i,chainNamespace:n})}async syncReownName(e,t){try{let n=await this.getReownName(e);if(n[0]){let e=n[0];this.setProfileName(e.name,t)}else this.setProfileName(null,t)}catch{this.setProfileName(null,t)}}syncConnectedWalletInfo(e){let t=_.getConnectorId(e),n=yf.getProviderId(e);if(n===K.CONNECTOR_TYPE_ANNOUNCED||n===K.CONNECTOR_TYPE_INJECTED){if(t){let n=this.getConnectors().find(e=>e.id===t);if(n){let{info:t,name:r,imageUrl:i}=n,a=i||this.getConnectorImage(n);this.setConnectedWalletInfo({name:r,icon:a,...t},e)}}}else if(n===K.CONNECTOR_TYPE_WALLET_CONNECT){let t=yf.getProvider(e);t?.session&&this.setConnectedWalletInfo({...t.session.peer.metadata,name:t.session.peer.metadata.name,icon:t.session.peer.metadata.icons?.[0]},e)}else if(t)if(t===B.CONNECTOR_ID.COINBASE){let t=this.getConnectors().find(e=>e.id===B.CONNECTOR_ID.COINBASE);this.setConnectedWalletInfo({name:`Coinbase Wallet`,icon:this.getConnectorImage(t)},e)}else this.setConnectedWalletInfo({name:t},e)}async syncBalance(e){!se.getNetworksByNamespace(this.caipNetworks,e.chainNamespace).find(t=>t.id.toString()===e.chainId?.toString())||!e.chainId||await this.updateNativeBalance(e.address,e.chainId,e.chainNamespace)}async updateNativeBalance(e,t,n){let r=this.getAdapter(n);if(r){let i=await r.getBalance({address:e,chainId:t,caipNetwork:this.getCaipNetwork(n),tokens:this.options.tokens});this.setBalance(i.balance,i.symbol,n)}}async initializeUniversalAdapter(){let e=ff.createLogger((e,...t)=>{e&&this.handleAlertError(e),console.error(...t)}),t={projectId:this.options?.projectId,metadata:{name:this.options?.metadata?this.options?.metadata.name:``,description:this.options?.metadata?this.options?.metadata.description:``,url:this.options?.metadata?this.options?.metadata.url:``,icons:this.options?.metadata?this.options?.metadata.icons:[``]},logger:e};y.setManualWCControl(!!this.options?.manualWCControl),this.universalProvider=this.options.universalProvider??await SJ.init(t),this.listenWalletConnect()}listenWalletConnect(){this.universalProvider&&(this.universalProvider.on(`display_uri`,e=>{H.setUri(e)}),this.universalProvider.on(`connect`,H.finalizeWcConnection),this.universalProvider.on(`disconnect`,()=>{this.chainNamespaces.forEach(e=>{this.resetAccount(e)}),H.resetWcConnection()}),this.universalProvider.on(`chainChanged`,e=>{let t=this.caipNetworks?.find(t=>t.id==e),n=this.getCaipNetwork();if(!t){this.setUnsupportedNetwork(e);return}n?.id!==t?.id&&this.setCaipNetwork(t)}),this.universalProvider.on(`session_event`,e=>{if(kJ.isSessionEventData(e)){let{name:t,data:n}=e.params.event;t===`accountsChanged`&&Array.isArray(n)&&P.isCaipAddress(n[0])&&this.syncAccount(qe.parseCaipAddress(n[0]))}}))}createUniversalProvider(){return!this.universalProviderInitPromise&&P.isClient()&&this.options?.projectId&&(this.universalProviderInitPromise=this.initializeUniversalAdapter()),this.universalProviderInitPromise}async getUniversalProvider(){if(!this.universalProvider)try{await this.createUniversalProvider()}catch(e){b.sendEvent({type:`error`,event:`INTERNAL_SDK_ERROR`,properties:{errorType:`UniversalProviderInitError`,errorMessage:e instanceof Error?e.message:`Unknown`,uncaught:!1}}),console.error(`AppKit:getUniversalProvider - Cannot create provider`,e)}return this.universalProvider}handleAlertError(e){let[t,n]=Object.entries(uf.UniversalProviderErrors).find(([,{message:t}])=>e.message.includes(t))??[],{message:r,alertErrorKey:i}=n??{};if(t&&r&&!this.reportedAlertErrors[t]){let e=uf.ALERT_ERRORS[i];e&&(ae.open(e,`error`),this.reportedAlertErrors[t]=!0)}}getAdapter(e){if(e)return this.chainAdapters?.[e]}createAdapter(e){if(!e)return;let t=e.namespace;if(!t)return;this.createClients();let n=e;n.namespace=t,n.construct({namespace:t,projectId:this.options?.projectId,networks:this.caipNetworks}),this.chainNamespaces.includes(t)||this.chainNamespaces.push(t),this.chainAdapters&&(this.chainAdapters[t]=n)}async open(e){await this.injectModalUi(),e?.uri&&H.setUri(e.uri),await ce.open(e)}async close(){await this.injectModalUi(),ce.close()}setLoading(e,t){ce.setLoading(e,t)}async disconnect(e){await H.disconnect(e)}getError(){return``}getChainId(){return G.state.activeCaipNetwork?.id}async switchNetwork(e){let t=this.caipNetworks?.find(t=>t.id===e.id);if(!t){ae.open(uf.ALERT_ERRORS.SWITCH_NETWORK_NOT_FOUND,`error`);return}await G.switchActiveNetwork(t)}getWalletProvider(){return G.state.activeChain?yf.state.providers[G.state.activeChain]:null}getWalletProviderType(){return yf.getProviderId(G.state.activeChain)}subscribeProviders(e){return yf.subscribeProviders(e)}getThemeMode(){return A.state.themeMode}getThemeVariables(){return A.state.themeVariables}setThemeMode(e){A.setThemeMode(e),R(A.state.themeMode)}setTermsConditionsUrl(e){y.setTermsConditionsUrl(e)}setPrivacyPolicyUrl(e){y.setPrivacyPolicyUrl(e)}setThemeVariables(e){A.setThemeVariables(e),ne(A.state.themeVariables)}subscribeTheme(e){return A.subscribe(e)}getWalletInfo(){return z.state.connectedWalletInfo}getAccount(e){let t=_.getAuthConnector(e),n=G.getAccountData(e);if(n)return{allAccounts:n.allAccounts,caipAddress:n.caipAddress,address:P.getPlainAddress(n.caipAddress),isConnected:!!n.caipAddress,status:n.status,embeddedWalletInfo:t?{user:n.user,authProvider:n.socialProvider||`email`,accountType:n.preferredAccountType,isSmartAccountDeployed:!!n.smartAccountDeployed}:void 0}}subscribeAccount(e,t){let n=()=>{let n=this.getAccount(t);n&&e(n)};t?G.subscribeChainProp(`accountState`,n,t):G.subscribe(n),_.subscribe(n)}subscribeNetwork(e){return G.subscribe(({activeCaipNetwork:t})=>{e({caipNetwork:t,chainId:t?.id,caipNetworkId:t?.caipNetworkId})})}subscribeWalletInfo(e){return z.subscribeKey(`connectedWalletInfo`,e)}subscribeShouldUpdateToAddress(e){z.subscribeKey(`shouldUpdateToAddress`,e)}subscribeCaipNetworkChange(e){G.subscribeKey(`activeCaipNetwork`,e)}getState(){return ee.state}subscribeState(e){return ee.subscribe(e)}showErrorMessage(e){le.showError(e)}showSuccessMessage(e){le.showSuccess(e)}getEvent(){return{...b.state}}subscribeEvents(e){return b.subscribe(e)}replace(e){M.replace(e)}redirect(e){M.push(e)}popTransactionStack(e){M.popTransactionStack(e)}isOpen(){return ce.state.open}isTransactionStackEmpty(){return M.state.transactionStack.length===0}isTransactionShouldReplaceView(){return M.state.transactionStack[M.state.transactionStack.length-1]?.replace}static getInstance(){return this.instance}updateFeatures(e){y.setFeatures(e)}updateOptions(e){let t={...y.state||{},...e};y.setOptions(t)}setConnectMethodsOrder(e){y.setConnectMethodsOrder(e)}setWalletFeaturesOrder(e){y.setWalletFeaturesOrder(e)}setCollapseWallets(e){y.setCollapseWallets(e)}setSocialsOrder(e){y.setSocialsOrder(e)}getConnectMethodsOrder(){return me.getConnectOrderMethod(y.state.features,_.getConnectors())}removeAdapter(e){let t=this.getIsConnectedState(),n=this.getAdapter(e);if(!n||!this.chainAdapters||t)return;let r=this.caipNetworks?.filter(t=>t.chainNamespace!==e);G.removeAdapter(e),_.removeAdapter(e),this.chainNamespaces=this.chainNamespaces.filter(t=>t!==e),this.caipNetworks=r,n.removeAllEventListeners(),Reflect.deleteProperty(this.chainAdapters,e)}addAdapter(e,t){let n=e.namespace;if(!this.connectionControllerClient||!this.networkControllerClient||!this.chainAdapters||!n)return;let r=this.extendCaipNetworks({...this.options,networks:t});this.caipNetworks=[...this.caipNetworks||[],...r],this.createAdapter(e),this.initChainAdapter(n),G.addAdapter(e,{connectionControllerClient:this.connectionControllerClient,networkControllerClient:this.networkControllerClient},r)}addNetwork(e,t){if(this.chainAdapters&&!this.chainAdapters[e])throw Error(`Adapter for namespace ${e} doesn't exist`);let n=this.extendCaipNetwork(t,this.options);G.addNetwork(n),this.caipNetworks&&!this.caipNetworks?.find(e=>e.id===n.id)&&this.caipNetworks.push(n)}removeNetwork(e,t){if(this.chainAdapters&&!this.chainAdapters[e])throw Error(`Adapter for namespace ${e} doesn't exist`);if(!this.caipNetworks?.find(e=>e.id===t))throw Error(`Network with ID ${t} not found`);if(!this.caipNetworks)return;let n=this.caipNetworks.filter(n=>n.chainNamespace===e&&n.id!==t);if(!n?.length)throw Error(`Cannot remove last network for a namespace`);G.removeNetwork(e,t),this.caipNetworks=[...n]}},FJ=!1,IJ=class extends PJ{async open(e){_.isConnected()||await super.open(e)}async close(){await super.close(),this.options.manualWCControl&&H.finalizeWcConnection()}async syncIdentity(e){return Promise.resolve()}async syncBalance(e){return Promise.resolve()}async injectModalUi(){if(!FJ&&P.isClient()){if(await a(()=>import(`./basic-DiyvIczP.js`),__vite__mapDeps([5,6,1,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])),await a(()=>import(`./w3m-modal-CcAeUAZf.js`),__vite__mapDeps([33,29,30,7,31,1])),!document.querySelector(`w3m-modal`)){let e=document.createElement(`w3m-modal`);!y.state.disableAppend&&!y.state.enableEmbedded&&document.body.insertAdjacentElement(`beforeend`,e)}FJ=!0}}},LJ=`1.7.2`;function RJ(e){return new IJ({...e,basic:!0,sdkVersion:`html-core-${LJ}`})}var zJ=class e extends Error{constructor(){super(),Object.setPrototypeOf(this,e.prototype)}},BJ=class extends Error{constructor(e){super(`WalletConnect Adapter - Method ${e} is not supported by the wallet`),this.name=`WalletConnectFeatureNotSupportedError`}};function VJ(e){let t=[e];return e===Tp.Mainnet||e===Tp.Deprecated_Mainnet?(t=[Tp.Mainnet,Tp.Deprecated_Mainnet],e===Tp.Deprecated_Mainnet&&console.warn(HJ.mainnet)):(e===Tp.Deprecated_Devnet||e===Tp.Devnet)&&(t=[Tp.Devnet,Tp.Deprecated_Devnet],Tp.Deprecated_Devnet&&console.warn(HJ.devnet)),t}var HJ={mainnet:`You are using a deprecated chain ID for Solana Mainnet, please use ${Tp.Mainnet} instead.`,devnet:`You are using a deprecated chain ID for Solana Devnet, please use ${Tp.Devnet} instead.`,wallet:`The connected wallet is using a deprecated chain ID for Solana. Please, contact them to upgrade. You can learn more at https://github.com/ChainAgnostic/namespaces/blob/main/solana/caip10.md#chain-ids`};function UJ(e,t){let n=e.namespaces.solana?.accounts.map(e=>`solana:${e.split(`:`)[1]}`);if(t===Tp.Mainnet)return n?.find(e=>e===Tp.Mainnet)?Tp.Mainnet:(console.warn(HJ.wallet),Tp.Deprecated_Mainnet);if(t===Tp.Devnet)return n?.find(e=>e===Tp.Devnet)?Tp.Devnet:(console.warn(HJ.wallet),Tp.Deprecated_Devnet);throw Error(`WalletConnect Solana Adapter: Unable to get a default chain from the session.`)}function WJ(e){return{optionalNamespaces:{solana:{chains:VJ(e),methods:[wp.signTransaction,wp.signMessage],events:[]}}}}var GJ=class e extends Error{constructor(){super(`QR Code Modal was closed by user`),Object.setPrototypeOf(this,e.prototype),this.name=`QRCodeModalError`}},KJ=class{_UniversalProvider;_session;_modal;_projectId;_network;_ConnectQueueResolver;constructor(e){if(this.initClient(e.options),this._network=e.network,!e.options.projectId)throw Error(`WalletConnect Adapter: Project ID is undefined`);this._projectId=e.options.projectId}async connect(){if(this._UniversalProvider||await new Promise(e=>{this._ConnectQueueResolver=e}),!this._UniversalProvider)throw Error(`WalletConnect Adapter - Universal Provider was undefined while calling 'connect()'`);if(this._UniversalProvider.session){this._session=this._UniversalProvider.session;let e=UJ(this._session,this._network);return this._network=e,this._UniversalProvider.setDefaultChain(e),{publicKey:this.publicKey}}await this.initModal();let e=WJ(this._network);this._modal?.open();let t=new AbortController,n=t.signal;this._modal?.subscribeState(e=>{e.open||t.abort(new GJ)});try{let t=await Promise.race([this._UniversalProvider?.connect(e),new Promise((e,t)=>{n.addEventListener(`abort`,()=>{t(n.reason)})})]);if(this._modal?.close(),this._session=t,!t)throw new je;let r=UJ(t,this._network);return this._network=r,this._UniversalProvider?.setDefaultChain(r),{publicKey:this.publicKey}}catch(e){throw this._modal?.close(),e}}async disconnect(){if(this._UniversalProvider?.session){if(await this.initModal(),!this._modal)throw Error(`WalletConnect Adapter -Modal is undefined: unable to disconnect`);await this.client.disconnect(),this._session=void 0}else throw new zJ}get client(){if(this._UniversalProvider)return this._UniversalProvider;throw new zJ}get session(){if(!this._session)throw new zJ;return this._session}get publicKey(){if(this._UniversalProvider?.session&&this._session){let{address:e}=Qm(this._session?.namespaces.solana?.accounts[0]??``);return new c(e)}throw new zJ}async signTransaction(e){this.checkIfWalletSupportsMethod(wp.signTransaction);let t=Pe(e),n=t?{}:e,{signature:r,transaction:i}=await this.client.client.request({chainId:this._network,topic:this.session.topic,request:{method:wp.signTransaction,params:{...n,transaction:this.serialize(e)}}});return i?this.deserialize(i,t):(e.addSignature(this.publicKey,Buffer.from(Fs.decode(r))),e)}async signMessage(e){this.checkIfWalletSupportsMethod(wp.signMessage);let{signature:t}=await this.client.client.request({chainId:this._network,topic:this.session.topic,request:{method:wp.signMessage,params:{pubkey:this.publicKey.toString(),message:Fs.encode(e)}}});return Fs.decode(t)}async signAndSendTransaction(e){this.checkIfWalletSupportsMethod(wp.signAndSendTransaction);let{signature:t}=await this.client.client.request({chainId:this._network,topic:this.session.topic,request:{method:wp.signAndSendTransaction,params:{transaction:this.serialize(e)}}});return t}async signAllTransactions(e){try{this.checkIfWalletSupportsMethod(wp.signAllTransactions);let t=e.map(e=>this.serialize(e)),{transactions:n}=await this.client.client.request({chainId:this._network,topic:this.session.topic,request:{method:wp.signAllTransactions,params:{transactions:t}}});return e.map((e,t)=>Pe(e)?this.deserialize(n[t]??``,!0):this.deserialize(n[t]??``))}catch(t){if(t instanceof BJ){let t=e.map(e=>this.signTransaction(e));return await Promise.all(t)}throw t}}async initClient(e){let t=await yP.init(e);this._UniversalProvider=t,this._ConnectQueueResolver&&this._ConnectQueueResolver(!0)}async initModal(){if(!this._modal){if(!this._UniversalProvider)throw Error(`WalletConnect Adapter - cannot init modal when Universal Provider is undefined`);this._modal=RJ({projectId:this._projectId,universalProvider:this._UniversalProvider,networks:[TJ,EJ,DJ],manualWCControl:!0})}}serialize(e){return Buffer.from(e.serialize({verifySignatures:!1})).toString(`base64`)}deserialize(e,t=!1){return t?s.deserialize(Buffer.from(e,`base64`)):o.from(Buffer.from(e,`base64`))}checkIfWalletSupportsMethod(e){if(!this.session.namespaces.solana?.methods.includes(e))throw new BJ(e)}},qJ=`WalletConnect`,JJ=class extends Ne{name=qJ;url=`https://walletconnect.org`;icon=`data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE4NSIgdmlld0JveD0iMCAwIDMwMCAxODUiIHdpZHRoPSIzMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTYxLjQzODU0MjkgMzYuMjU2MjYxMmM0OC45MTEyMjQxLTQ3Ljg4ODE2NjMgMTI4LjIxMTk4NzEtNDcuODg4MTY2MyAxNzcuMTIzMjA5MSAwbDUuODg2NTQ1IDUuNzYzNDE3NGMyLjQ0NTU2MSAyLjM5NDQwODEgMi40NDU1NjEgNi4yNzY1MTEyIDAgOC42NzA5MjA0bC0yMC4xMzY2OTUgMTkuNzE1NTAzYy0xLjIyMjc4MSAxLjE5NzIwNTEtMy4yMDUzIDEuMTk3MjA1MS00LjQyODA4MSAwbC04LjEwMDU4NC03LjkzMTE0NzljLTM0LjEyMTY5Mi0zMy40MDc5ODE3LTg5LjQ0Mzg4Ni0zMy40MDc5ODE3LTEyMy41NjU1Nzg4IDBsLTguNjc1MDU2MiA4LjQ5MzYwNTFjLTEuMjIyNzgxNiAxLjE5NzIwNDEtMy4yMDUzMDEgMS4xOTcyMDQxLTQuNDI4MDgwNiAwbC0yMC4xMzY2OTQ5LTE5LjcxNTUwMzFjLTIuNDQ1NTYxMi0yLjM5NDQwOTItMi40NDU1NjEyLTYuMjc2NTEyMiAwLTguNjcwOTIwNHptMjE4Ljc2Nzc5NjEgNDAuNzczNzQ0OSAxNy45MjE2OTcgMTcuNTQ2ODk3YzIuNDQ1NTQ5IDIuMzk0Mzk2OSAyLjQ0NTU2MyA2LjI3NjQ3NjkuMDAwMDMxIDguNjcwODg5OWwtODAuODEwMTcxIDc5LjEyMTEzNGMtMi40NDU1NDQgMi4zOTQ0MjYtNi40MTA1ODIgMi4zOTQ0NTMtOC44NTYxNi4wMDAwNjItLjAwMDAxLS4wMDAwMS0uMDAwMDIyLS4wMDAwMjItLjAwMDAzMi0uMDAwMDMybC01Ny4zNTQxNDMtNTYuMTU0NTcyYy0uNjExMzktLjU5ODYwMi0xLjYwMjY1LS41OTg2MDItMi4yMTQwNCAwLS4wMDAwMDQuMDAwMDA0LS4wMDAwMDcuMDAwMDA4LS4wMDAwMTEuMDAwMDExbC01Ny4zNTI5MjEyIDU2LjE1NDUzMWMtMi40NDU1MzY4IDIuMzk0NDMyLTYuNDEwNTc1NSAyLjM5NDQ3Mi04Ljg1NjE2MTIuMDAwMDg3LS4wMDAwMTQzLS4wMDAwMTQtLjAwMDAyOTYtLjAwMDAyOC0uMDAwMDQ0OS0uMDAwMDQ0bC04MC44MTI0MTk0My03OS4xMjIxODVjLTIuNDQ1NTYwMjEtMi4zOTQ0MDgtMi40NDU1NjAyMS02LjI3NjUxMTUgMC04LjY3MDkxOTdsMTcuOTIxNzI5NjMtMTcuNTQ2ODY3M2MyLjQ0NTU2MDItMi4zOTQ0MDgyIDYuNDEwNTk4OS0yLjM5NDQwODIgOC44NTYxNjAyIDBsNTcuMzU0OTc3NSA1Ni4xNTUzNTdjLjYxMTM5MDguNTk4NjAyIDEuNjAyNjQ5LjU5ODYwMiAyLjIxNDAzOTggMCAuMDAwMDA5Mi0uMDAwMDA5LjAwMDAxNzQtLjAwMDAxNy4wMDAwMjY1LS4wMDAwMjRsNTcuMzUyMTAzMS01Ni4xNTUzMzNjMi40NDU1MDUtMi4zOTQ0NjMzIDYuNDEwNTQ0LTIuMzk0NTUzMSA4Ljg1NjE2MS0uMDAwMi4wMDAwMzQuMDAwMDMzNi4wMDAwNjguMDAwMDY3My4wMDAxMDEuMDAwMTAxbDU3LjM1NDkwMiA1Ni4xNTU0MzJjLjYxMTM5LjU5ODYwMSAxLjYwMjY1LjU5ODYwMSAyLjIxNDA0IDBsNTcuMzUzOTc1LTU2LjE1NDMyNDljMi40NDU1NjEtMi4zOTQ0MDkyIDYuNDEwNTk5LTIuMzk0NDA5MiA4Ljg1NjE2IDB6IiBmaWxsPSIjM2I5OWZjIi8+PC9zdmc+`;supportedTransactionVersions=new Set([`legacy`,0]);_publicKey;_connecting;_wallet;_config;_readyState;_onDisconnect;constructor(e){super(),this._publicKey=null,this._connecting=!1,this._config=e,this._wallet=null,this._readyState=typeof window>`u`?Ae.Unsupported:Ae.Loadable,this._onDisconnect=this.disconnect.bind(this)}get publicKey(){return this._publicKey}get connecting(){return this._connecting}get readyState(){return this._readyState}async connect(){try{if(this.connected||this.connecting)return;if(this._readyState!==Ae.Loadable)throw new Oe;this._connecting=!0,this._wallet=new KJ({network:this._config.network===Me.Mainnet?Cp.Mainnet:Cp.Devnet,options:this._config.options});let{publicKey:e}=await this._wallet.connect();this._publicKey=e,this.emit(`connect`,e),this._wallet.client.on(`session_delete`,this._onDisconnect)}catch(e){throw e.constructor.name===`QRCodeModalError`||e instanceof Error&&e.name===`QRCodeModalError`?new Ee:(this._connecting=!1,e)}finally{this._connecting=!1}}async disconnect(){let e=this._wallet;if(e){e.client.off(`session_delete`,this._onDisconnect),this._publicKey=null;try{e.client.session&&await e.disconnect()}catch(e){console.error(`WalletConnectWalletAdapter: disconnect error`,e),this.emit(`error`,new ke(e?.message,e))}}this.emit(`disconnect`)}async signTransaction(e){try{let t=this._wallet;if(!t)throw new Ie;try{return await t.signTransaction(e)}catch(e){throw new De(e?.message,e)}}catch(e){throw this.emit(`error`,e),e}}async signMessage(e){try{let t=this._wallet;if(!t)throw new Ie;try{return await t.signMessage(e)}catch(e){throw new Fe(e?.message,e)}}catch(e){throw this.emit(`error`,e),e}}async signAndSendTransaction(e){try{let t=this._wallet;if(!t)throw new Ie;try{return await t.signAndSendTransaction(e)}catch(e){throw new De(e?.message,e)}}catch(e){throw this.emit(`error`,e),e}}async signAllTransactions(e){try{let t=this._wallet;if(!t)throw new Ie;try{return await t.signAllTransactions(e)}catch(e){throw new De(e?.message,e)}}catch(e){throw this.emit(`error`,e),e}}};export{JJ as WalletConnectWalletAdapter,qJ as WalletConnectWalletName};
28
+ Approved: ${i.toString()}`))}),o.forEach(e=>{r||(VP(i[e].methods,a[e].methods)?VP(i[e].events,a[e].events)||(r=Q(`NON_CONFORMING_NAMESPACES`,`${n} namespaces events don't satisfy namespace events for ${e}`)):r=Q(`NON_CONFORMING_NAMESPACES`,`${n} namespaces methods don't satisfy namespace methods for ${e}`))}),r}function Zz(e){let t={};return Object.keys(e).forEach(n=>{var r;n.includes(`:`)?t[n]=e[n]:(r=e[n].chains)==null||r.forEach(r=>{t[r]={methods:e[n].methods,events:e[n].events}})}),t}function Qz(e){return[...new Set(e.map(e=>e.includes(`:`)?e.split(`:`)[0]:e))]}function $z(e){let t={};return Object.keys(e).forEach(n=>{n.includes(`:`)?t[n]=e[n]:sz(e[n].accounts)?.forEach(r=>{t[r]={accounts:e[n].accounts.filter(e=>e.includes(`${r}:`)),methods:e[n].methods,events:e[n].events}})}),t}function eB(e,t){return Sz(e,!1)&&e<=t.max&&e>=t.min}function tB(){let e=NP();return new Promise(t=>{switch(e){case DP.browser:t(nB());break;case DP.reactNative:t(rB());break;case DP.node:t(iB());break;default:t(!0)}})}function nB(){return MP()&&navigator?.onLine}async function rB(){return kP()&&typeof global<`u`&&global!=null&&global.NetInfo?(await(global==null?void 0:global.NetInfo.fetch()))?.isConnected:!0}function iB(){return!0}function aB(e){switch(NP()){case DP.browser:oB(e);break;case DP.reactNative:sB(e);break;case DP.node:break}}function oB(e){!kP()&&MP()&&(window.addEventListener(`online`,()=>e(!0)),window.addEventListener(`offline`,()=>e(!1)))}function sB(e){kP()&&typeof global<`u`&&global!=null&&global.NetInfo&&global?.NetInfo.addEventListener(t=>e(t?.isConnected))}var cB={},lB=class{static get(e){return cB[e]}static set(e,t){cB[e]=t}static delete(e){delete cB[e]}},uB=`core`,dB=`wc@2:${uB}:`,fB={name:uB,logger:`error`},pB={database:`:memory:`},mB=`crypto`,hB=`client_ed25519_seed`,gB=q.ONE_DAY,_B=`keychain`,vB=`messages`,yB=q.SIX_HOURS,bB=`publisher`,xB=`relayer`,SB={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`},CB={payload:`payload`,connect:`connect`,disconnect:`disconnect`,error:`error`},wB=`2.19.1`,TB={link_mode:`link_mode`,relay:`relay`},EB={inbound:`inbound`,outbound:`outbound`},DB=`WALLETCONNECT_CLIENT_ID`,OB={created:`subscription_created`,deleted:`subscription_deleted`,expired:`subscription_expired`,disabled:`subscription_disabled`,sync:`subscription_sync`,resubscribed:`subscription_resubscribed`};q.THIRTY_DAYS;var kB=`subscription`;q.FIVE_SECONDS*1e3;var AB=`pairing`;q.THIRTY_DAYS;var jB={wc_pairingDelete:{req:{ttl:q.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:q.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:q.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:q.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:q.ONE_DAY,prompt:!1,tag:0},res:{ttl:q.ONE_DAY,prompt:!1,tag:0}}},MB={create:`pairing_create`,expire:`pairing_expire`,delete:`pairing_delete`,ping:`pairing_ping`},NB={created:`history_created`,updated:`history_updated`,deleted:`history_deleted`,sync:`history_sync`},PB=`history`,FB=`expirer`,IB={created:`expirer_created`,deleted:`expirer_deleted`,expired:`expirer_expired`,sync:`expirer_sync`};q.ONE_DAY;var LB=`verify-api`,RB=`https://verify.walletconnect.com`,zB=`https://verify.walletconnect.org`,BB=`${zB}/v3`,VB=[RB,zB],HB=`echo`,UB=`https://echo.walletconnect.com`,WB={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`},GB={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`},KB={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`},qB={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`},JB={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`},YB={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`},XB=.1,ZB=`event-client`,QB=`https://pulse.walletconnect.org/batch`;function $B(e,t){if(e.length>=255)throw TypeError(`Alphabet too long`);for(var n=new Uint8Array(256),r=0;r<n.length;r++)n[r]=255;for(var i=0;i<e.length;i++){var a=e.charAt(i),o=a.charCodeAt(0);if(n[o]!==255)throw TypeError(a+` is ambiguous`);n[o]=i}var s=e.length,c=e.charAt(0),l=Math.log(s)/Math.log(256),u=Math.log(256)/Math.log(s);function d(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw TypeError(`Expected Uint8Array`);if(t.length===0)return``;for(var n=0,r=0,i=0,a=t.length;i!==a&&t[i]===0;)i++,n++;for(var o=(a-i)*u+1>>>0,l=new Uint8Array(o);i!==a;){for(var d=t[i],f=0,p=o-1;(d!==0||f<r)&&p!==-1;p--,f++)d+=256*l[p]>>>0,l[p]=d%s>>>0,d=d/s>>>0;if(d!==0)throw Error(`Non-zero carry`);r=f,i++}for(var m=o-r;m!==o&&l[m]===0;)m++;for(var h=c.repeat(n);m<o;++m)h+=e.charAt(l[m]);return h}function f(e){if(typeof e!=`string`)throw TypeError(`Expected String`);if(e.length===0)return new Uint8Array;var t=0;if(e[t]!==` `){for(var r=0,i=0;e[t]===c;)r++,t++;for(var a=(e.length-t)*l+1>>>0,o=new Uint8Array(a);e[t];){var u=n[e.charCodeAt(t)];if(u===255)return;for(var d=0,f=a-1;(u!==0||d<i)&&f!==-1;f--,d++)u+=s*o[f]>>>0,o[f]=u%256>>>0,u=u/256>>>0;if(u!==0)throw Error(`Non-zero carry`);i=d,t++}if(e[t]!==` `){for(var p=a-i;p!==a&&o[p]===0;)p++;for(var m=new Uint8Array(r+(a-p)),h=r;p!==a;)m[h++]=o[p++];return m}}}function p(e){var n=f(e);if(n)return n;throw Error(`Non-${t} character`)}return{encode:d,decodeUnsafe:f,decode:p}}var eV=$B,tV=e=>{if(e instanceof Uint8Array&&e.constructor.name===`Uint8Array`)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw Error(`Unknown type, must be binary type`)},nV=e=>new TextEncoder().encode(e),rV=e=>new TextDecoder().decode(e),iV=class{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error(`Unknown type, must be binary type`)}},aV=class{constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw Error(`Invalid prefix character`);this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}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 sV(this,e)}},oV=class{constructor(e){this.decoders=e}or(e){return sV(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},sV=(e,t)=>new oV({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),cV=class{constructor(e,t,n,r){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=r,this.encoder=new iV(e,t,n),this.decoder=new aV(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},lV=({name:e,prefix:t,encode:n,decode:r})=>new cV(e,t,n,r),uV=({prefix:e,name:t,alphabet:n})=>{let{encode:r,decode:i}=eV(n,t);return lV({prefix:e,name:t,encode:r,decode:e=>tV(i(e))})},dV=(e,t,n,r)=>{let i={};for(let e=0;e<t.length;++e)i[t[e]]=e;let a=e.length;for(;e[a-1]===`=`;)--a;let o=new Uint8Array(a*n/8|0),s=0,c=0,l=0;for(let t=0;t<a;++t){let a=i[e[t]];if(a===void 0)throw SyntaxError(`Non-${r} character`);c=c<<n|a,s+=n,s>=8&&(s-=8,o[l++]=255&c>>s)}if(s>=n||255&c<<8-s)throw SyntaxError(`Unexpected end of data`);return o},fV=(e,t,n)=>{let r=t[t.length-1]===`=`,i=(1<<n)-1,a=``,o=0,s=0;for(let r=0;r<e.length;++r)for(s=s<<8|e[r],o+=8;o>n;)o-=n,a+=t[i&s>>o];if(o&&(a+=t[i&s<<n-o]),r)for(;a.length*n&7;)a+=`=`;return a},pV=({name:e,prefix:t,bitsPerChar:n,alphabet:r})=>lV({prefix:t,name:e,encode(e){return fV(e,r,n)},decode(t){return dV(t,r,n,e)}}),mV=lV({prefix:`\0`,name:`identity`,encode:e=>rV(e),decode:e=>nV(e)}),hV=Object.freeze({__proto__:null,identity:mV}),gV=pV({prefix:`0`,name:`base2`,alphabet:`01`,bitsPerChar:1}),_V=Object.freeze({__proto__:null,base2:gV}),vV=pV({prefix:`7`,name:`base8`,alphabet:`01234567`,bitsPerChar:3}),yV=Object.freeze({__proto__:null,base8:vV}),bV=uV({prefix:`9`,name:`base10`,alphabet:`0123456789`}),xV=Object.freeze({__proto__:null,base10:bV}),SV=pV({prefix:`f`,name:`base16`,alphabet:`0123456789abcdef`,bitsPerChar:4}),CV=pV({prefix:`F`,name:`base16upper`,alphabet:`0123456789ABCDEF`,bitsPerChar:4}),wV=Object.freeze({__proto__:null,base16:SV,base16upper:CV}),TV=pV({prefix:`b`,name:`base32`,alphabet:`abcdefghijklmnopqrstuvwxyz234567`,bitsPerChar:5}),EV=pV({prefix:`B`,name:`base32upper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`,bitsPerChar:5}),DV=pV({prefix:`c`,name:`base32pad`,alphabet:`abcdefghijklmnopqrstuvwxyz234567=`,bitsPerChar:5}),OV=pV({prefix:`C`,name:`base32padupper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=`,bitsPerChar:5}),kV=pV({prefix:`v`,name:`base32hex`,alphabet:`0123456789abcdefghijklmnopqrstuv`,bitsPerChar:5}),AV=pV({prefix:`V`,name:`base32hexupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV`,bitsPerChar:5}),jV=pV({prefix:`t`,name:`base32hexpad`,alphabet:`0123456789abcdefghijklmnopqrstuv=`,bitsPerChar:5}),MV=pV({prefix:`T`,name:`base32hexpadupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV=`,bitsPerChar:5}),NV=pV({prefix:`h`,name:`base32z`,alphabet:`ybndrfg8ejkmcpqxot1uwisza345h769`,bitsPerChar:5}),PV=Object.freeze({__proto__:null,base32:TV,base32upper:EV,base32pad:DV,base32padupper:OV,base32hex:kV,base32hexupper:AV,base32hexpad:jV,base32hexpadupper:MV,base32z:NV}),FV=uV({prefix:`k`,name:`base36`,alphabet:`0123456789abcdefghijklmnopqrstuvwxyz`}),IV=uV({prefix:`K`,name:`base36upper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ`}),LV=Object.freeze({__proto__:null,base36:FV,base36upper:IV}),RV=uV({name:`base58btc`,prefix:`z`,alphabet:`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`}),zV=uV({name:`base58flickr`,prefix:`Z`,alphabet:`123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ`}),BV=Object.freeze({__proto__:null,base58btc:RV,base58flickr:zV}),VV=pV({prefix:`m`,name:`base64`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,bitsPerChar:6}),HV=pV({prefix:`M`,name:`base64pad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`,bitsPerChar:6}),UV=pV({prefix:`u`,name:`base64url`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,bitsPerChar:6}),WV=pV({prefix:`U`,name:`base64urlpad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=`,bitsPerChar:6}),GV=Object.freeze({__proto__:null,base64:VV,base64pad:HV,base64url:UV,base64urlpad:WV}),KV=Array.from(`🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂`),qV=KV.reduce((e,t,n)=>(e[n]=t,e),[]),JV=KV.reduce((e,t,n)=>(e[t.codePointAt(0)]=n,e),[]);function YV(e){return e.reduce((e,t)=>(e+=qV[t],e),``)}function XV(e){let t=[];for(let n of e){let e=JV[n.codePointAt(0)];if(e===void 0)throw Error(`Non-base256emoji character: ${n}`);t.push(e)}return new Uint8Array(t)}var ZV=lV({prefix:`🚀`,name:`base256emoji`,encode:YV,decode:XV}),QV=Object.freeze({__proto__:null,base256emoji:ZV}),$V=rH,eH=128,tH=-128,nH=2**31;function rH(e,t,n){t||=[],n||=0;for(var r=n;e>=nH;)t[n++]=e&255|eH,e/=128;for(;e&tH;)t[n++]=e&255|eH,e>>>=7;return t[n]=e|0,rH.bytes=n-r+1,t}var iH=sH,aH=128,oH=127;function sH(e,t){var n=0,t=t||0,r=0,i=t,a,o=e.length;do{if(i>=o)throw sH.bytes=0,RangeError(`Could not decode varint`);a=e[i++],n+=r<28?(a&oH)<<r:(a&oH)*2**r,r+=7}while(a>=aH);return sH.bytes=i-t,n}var cH=2**7,lH=2**14,uH=2**21,dH=2**28,fH=2**35,pH=2**42,mH=2**49,hH=2**56,gH=2**63,_H={encode:$V,decode:iH,encodingLength:function(e){return e<cH?1:e<lH?2:e<uH?3:e<dH?4:e<fH?5:e<pH?6:e<mH?7:e<hH?8:e<gH?9:10}},vH=(e,t,n=0)=>(_H.encode(e,t,n),t),yH=e=>_H.encodingLength(e),bH=(e,t)=>{let n=t.byteLength,r=yH(e),i=r+yH(n),a=new Uint8Array(i+n);return vH(e,a,0),vH(n,a,r),a.set(t,i),new xH(e,n,t,a)},xH=class{constructor(e,t,n,r){this.code=e,this.size=t,this.digest=n,this.bytes=r}},SH=({name:e,code:t,encode:n})=>new CH(e,t,n),CH=class{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?bH(this.code,t):t.then(e=>bH(this.code,e))}else throw Error(`Unknown type, must be binary type`)}},wH=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),TH=SH({name:`sha2-256`,code:18,encode:wH(`SHA-256`)}),EH=SH({name:`sha2-512`,code:19,encode:wH(`SHA-512`)}),DH=Object.freeze({__proto__:null,sha256:TH,sha512:EH}),OH=0,kH=`identity`,AH=tV,jH=Object.freeze({__proto__:null,identity:{code:OH,name:kH,encode:AH,digest:e=>bH(OH,AH(e))}});new TextEncoder,new TextDecoder;var MH={...hV,..._V,...yV,...xV,...wV,...PV,...LV,...BV,...GV,...QV};({...DH,...jH});function NH(e=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e)}function PH(e,t,n,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:n},decoder:{decode:r}}}var FH=PH(`utf8`,`u`,e=>`u`+new TextDecoder(`utf8`).decode(e),e=>new TextEncoder().encode(e.substring(1))),IH=PH(`ascii`,`a`,e=>{let t=`a`;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t},e=>{e=e.substring(1);let t=NH(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}),LH={utf8:FH,"utf-8":FH,hex:MH.base16,latin1:IH,ascii:IH,binary:IH,...MH};function RH(e,t=`utf8`){let n=LH[t];if(!n)throw Error(`Unsupported encoding "${t}"`);return(t===`utf8`||t===`utf-8`)&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e,`utf8`):n.decoder.decode(`${n.prefix}${e}`)}var zH=Object.defineProperty,BH=(e,t,n)=>t in e?zH(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,VH=(e,t,n)=>BH(e,typeof t==`symbol`?t:t+``,n),HH=class{constructor(e,t){this.core=e,this.logger=t,VH(this,`keychain`,new Map),VH(this,`name`,_B),VH(this,`version`,`0.3`),VH(this,`initialized`,!1),VH(this,`storagePrefix`,dB),VH(this,`init`,async()=>{if(!this.initialized){let e=await this.getKeyChain();typeof e<`u`&&(this.keychain=e),this.initialized=!0}}),VH(this,`has`,e=>(this.isInitialized(),this.keychain.has(e))),VH(this,`set`,async(e,t)=>{this.isInitialized(),this.keychain.set(e,t),await this.persist()}),VH(this,`get`,e=>{this.isInitialized();let t=this.keychain.get(e);if(typeof t>`u`){let{message:t}=Q(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}),VH(this,`del`,async e=>{this.isInitialized(),this.keychain.delete(e),await this.persist()}),this.core=e,this.logger=g(t,this.name)}get context(){return D(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,HP(e))}async getKeyChain(){let e=await this.core.storage.getItem(this.storageKey);return typeof e<`u`?UP(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}},UH=Object.defineProperty,WH=(e,t,n)=>t in e?UH(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,GH=(e,t,n)=>WH(e,typeof t==`symbol`?t:t+``,n),KH=class{constructor(e,t,n){this.core=e,this.logger=t,GH(this,`name`,mB),GH(this,`keychain`),GH(this,`randomSessionIdentifier`,NR()),GH(this,`initialized`,!1),GH(this,`init`,async()=>{this.initialized||=(await this.keychain.init(),!0)}),GH(this,`hasKeys`,e=>(this.isInitialized(),this.keychain.has(e))),GH(this,`getClientId`,async()=>(this.isInitialized(),as(ds(await this.getClientSeed()).publicKey))),GH(this,`generateKeyPair`,()=>{this.isInitialized();let e=MR();return this.setPrivateKey(e.publicKey,e.privateKey)}),GH(this,`signJWT`,async e=>{this.isInitialized();let t=ds(await this.getClientSeed()),n=this.randomSessionIdentifier;return await fs(n,e,gB,t)}),GH(this,`generateSharedKey`,(e,t,n)=>{this.isInitialized();let r=PR(this.getPrivateKey(e),t);return this.setSymKey(r,n)}),GH(this,`setSymKey`,async(e,t)=>{this.isInitialized();let n=t||FR(e);return await this.keychain.set(n,e),n}),GH(this,`deleteKeyPair`,async e=>{this.isInitialized(),await this.keychain.del(e)}),GH(this,`deleteSymKey`,async e=>{this.isInitialized(),await this.keychain.del(e)}),GH(this,`encode`,async(e,t,n)=>{this.isInitialized();let r=KR(n),i=f(t);if(JR(r))return VR(i,n?.encoding);if(qR(r)){let t=r.senderPublicKey,n=r.receiverPublicKey;e=await this.generateSharedKey(t,n)}let a=this.getSymKey(e),{type:o,senderPublicKey:s}=r;return zR({type:o,symKey:a,message:i,senderPublicKey:s,encoding:n?.encoding})}),GH(this,`decode`,async(e,t,n)=>{this.isInitialized();let r=GR(t,n);if(JR(r))return pe(HR(t,n?.encoding));if(qR(r)){let t=r.receiverPublicKey,n=r.senderPublicKey;e=await this.generateSharedKey(t,n)}try{return pe(BR({symKey:this.getSymKey(e),encoded:t,encoding:n?.encoding}))}catch(t){this.logger.error(`Failed to decode message from topic: '${e}', clientId: '${await this.getClientId()}'`),this.logger.error(t)}}),GH(this,`getPayloadType`,(e,t=TR)=>RR(WR({encoded:e,encoding:t}).type)),GH(this,`getPayloadSenderPublicKey`,(e,t=TR)=>{let n=WR({encoded:e,encoding:t});return n.senderPublicKey?wl(n.senderPublicKey,wR):void 0}),this.core=e,this.logger=g(t,this.name),this.keychain=n||new HH(this.core,this.logger)}get context(){return D(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(hB)}catch{e=NR(),await this.keychain.set(hB,e)}return RH(e,`base16`)}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}},qH=Object.defineProperty,JH=Object.defineProperties,YH=Object.getOwnPropertyDescriptors,XH=Object.getOwnPropertySymbols,ZH=Object.prototype.hasOwnProperty,QH=Object.prototype.propertyIsEnumerable,$H=(e,t,n)=>t in e?qH(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,eU=(e,t)=>{for(var n in t||={})ZH.call(t,n)&&$H(e,n,t[n]);if(XH)for(var n of XH(t))QH.call(t,n)&&$H(e,n,t[n]);return e},tU=(e,t)=>JH(e,YH(t)),nU=(e,t,n)=>$H(e,typeof t==`symbol`?t:t+``,n),rU=class extends Hn{constructor(e,t){super(e,t),this.logger=e,this.core=t,nU(this,`messages`,new Map),nU(this,`messagesWithoutClientAck`,new Map),nU(this,`name`,vB),nU(this,`version`,`0.3`),nU(this,`initialized`,!1),nU(this,`storagePrefix`,dB),nU(this,`init`,async()=>{if(!this.initialized){this.logger.trace(`Initialized`);try{let e=await this.getRelayerMessages();typeof e<`u`&&(this.messages=e);let t=await this.getRelayerMessagesWithoutClientAck();typeof t<`u`&&(this.messagesWithoutClientAck=t),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:`method`,method:`restore`,size:this.messages.size})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}finally{this.initialized=!0}}}),nU(this,`set`,async(e,t,n)=>{this.isInitialized();let r=IR(t),i=this.messages.get(e);if(typeof i>`u`&&(i={}),typeof i[r]<`u`)return r;if(i[r]=t,this.messages.set(e,i),n===EB.inbound){let n=this.messagesWithoutClientAck.get(e)||{};this.messagesWithoutClientAck.set(e,tU(eU({},n),{[r]:t}))}return await this.persist(),r}),nU(this,`get`,e=>{this.isInitialized();let t=this.messages.get(e);return typeof t>`u`&&(t={}),t}),nU(this,`getWithoutAck`,e=>{this.isInitialized();let t={};for(let n of e){let e=this.messagesWithoutClientAck.get(n)||{};t[n]=Object.values(e)}return t}),nU(this,`has`,(e,t)=>(this.isInitialized(),typeof this.get(e)[IR(t)]<`u`)),nU(this,`ack`,async(e,t)=>{this.isInitialized();let n=this.messagesWithoutClientAck.get(e);if(typeof n>`u`)return;let r=IR(t);delete n[r],Object.keys(n).length===0?this.messagesWithoutClientAck.delete(e):this.messagesWithoutClientAck.set(e,n),await this.persist()}),nU(this,`del`,async e=>{this.isInitialized(),this.messages.delete(e),this.messagesWithoutClientAck.delete(e),await this.persist()}),this.logger=g(e,this.name),this.core=t}get context(){return D(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,HP(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,HP(e))}async getRelayerMessages(){let e=await this.core.storage.getItem(this.storageKey);return typeof e<`u`?UP(e):void 0}async getRelayerMessagesWithoutClientAck(){let e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return typeof e<`u`?UP(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}},iU=Object.defineProperty,aU=Object.defineProperties,oU=Object.getOwnPropertyDescriptors,sU=Object.getOwnPropertySymbols,cU=Object.prototype.hasOwnProperty,lU=Object.prototype.propertyIsEnumerable,uU=(e,t,n)=>t in e?iU(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dU=(e,t)=>{for(var n in t||={})cU.call(t,n)&&uU(e,n,t[n]);if(sU)for(var n of sU(t))lU.call(t,n)&&uU(e,n,t[n]);return e},fU=(e,t)=>aU(e,oU(t)),pU=(e,t,n)=>uU(e,typeof t==`symbol`?t:t+``,n),mU=class extends Un{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,pU(this,`events`,new jt.EventEmitter),pU(this,`name`,bB),pU(this,`queue`,new Map),pU(this,`publishTimeout`,(0,q.toMiliseconds)(q.ONE_MINUTE)),pU(this,`initialPublishTimeout`,(0,q.toMiliseconds)(q.ONE_SECOND*15)),pU(this,`needsTransportRestart`,!1),pU(this,`publish`,async(e,t,n)=>{var r;this.logger.debug(`Publishing Payload`),this.logger.trace({type:`method`,method:`publish`,params:{topic:e,message:t,opts:n}});let i=n?.ttl||yB,a=$R(n),o=n?.prompt||!1,s=n?.tag||0,c=n?.id||W().toString(),l={topic:e,message:t,opts:{ttl:i,relay:a,prompt:o,tag:s,id:c,attestation:n?.attestation,tvf:n?.tvf}},u=`Failed to publish payload, please try again. id:${c} tag:${s}`;try{let r=new Promise(async r=>{let a=({id:e})=>{l.opts.id===e&&(this.removeRequestFromQueue(e),this.relayer.events.removeListener(SB.publish,a),r(l))};this.relayer.events.on(SB.publish,a);let u=GP(new Promise((r,a)=>{this.rpcPublish({topic:e,message:t,ttl:i,prompt:o,tag:s,id:c,attestation:n?.attestation,tvf:n?.tvf}).then(r).catch(e=>{this.logger.warn(e,e?.message),a(e)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${c} tag:${s}`);try{await u,this.events.removeListener(SB.publish,a)}catch(e){this.queue.set(c,fU(dU({},l),{attempt:1})),this.logger.warn(e,e?.message)}});this.logger.trace({type:`method`,method:`publish`,params:{id:c,topic:e,message:t,opts:n}}),await GP(r,this.publishTimeout,u)}catch(e){if(this.logger.debug(`Failed to Publish Payload`),this.logger.error(e),(r=n?.internal)!=null&&r.throwOnFailedPublish)throw e}finally{this.queue.delete(c)}}),pU(this,`on`,(e,t)=>{this.events.on(e,t)}),pU(this,`once`,(e,t)=>{this.events.once(e,t)}),pU(this,`off`,(e,t)=>{this.events.off(e,t)}),pU(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.relayer=e,this.logger=g(t,this.name),this.registerEventListeners()}get context(){return D(this.logger)}async rpcPublish(e){var t,n;let{topic:r,message:i,ttl:a=yB,prompt:o,tag:s,id:c,attestation:l,tvf:u}=e,d={method:ez($R().protocol).publish,params:dU({topic:r,message:i,ttl:a,prompt:o,tag:s,attestation:l},u),id:c};bz(d.params?.prompt)&&((t=d.params)==null||delete t.prompt),bz(d.params?.tag)&&((n=d.params)==null||delete n.tag),this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`message`,direction:`outgoing`,request:d});let f=await this.relayer.request(d);return this.relayer.events.emit(SB.publish,e),this.logger.debug(`Successfully Published Payload`),f}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,t)=>{let n=e.attempt+1;this.queue.set(t,fU(dU({},e),{attempt:n}));let{topic:r,message:i,opts:a,attestation:o}=e;this.logger.warn({},`Publisher: queue->publishing: ${e.opts.id}, tag: ${e.opts.tag}, attempt: ${n}`),await this.rpcPublish(fU(dU({},e),{topic:r,message:i,ttl:a.ttl,prompt:a.prompt,tag:a.tag,id:a.id,attestation:o,tvf:a.tvf})),this.logger.warn({},`Publisher: queue->published: ${e.opts.id}`)})}registerEventListeners(){this.relayer.core.heartbeat.on(Pt.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(SB.connection_stalled);return}this.checkQueue()}),this.relayer.on(SB.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}},hU=Object.defineProperty,gU=(e,t,n)=>t in e?hU(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_U=(e,t,n)=>gU(e,typeof t==`symbol`?t:t+``,n),vU=class{constructor(){_U(this,`map`,new Map),_U(this,`set`,(e,t)=>{let n=this.get(e);this.exists(e,t)||this.map.set(e,[...n,t])}),_U(this,`get`,e=>this.map.get(e)||[]),_U(this,`exists`,(e,t)=>this.get(e).includes(t)),_U(this,`delete`,(e,t)=>{if(typeof t>`u`){this.map.delete(e);return}if(!this.map.has(e))return;let n=this.get(e);if(!this.exists(e,t))return;let r=n.filter(e=>e!==t);if(!r.length){this.map.delete(e);return}this.map.set(e,r)}),_U(this,`clear`,()=>{this.map.clear()})}get topics(){return Array.from(this.map.keys())}},yU=Object.defineProperty,bU=Object.defineProperties,xU=Object.getOwnPropertyDescriptors,SU=Object.getOwnPropertySymbols,CU=Object.prototype.hasOwnProperty,wU=Object.prototype.propertyIsEnumerable,TU=(e,t,n)=>t in e?yU(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,EU=(e,t)=>{for(var n in t||={})CU.call(t,n)&&TU(e,n,t[n]);if(SU)for(var n of SU(t))wU.call(t,n)&&TU(e,n,t[n]);return e},DU=(e,t)=>bU(e,xU(t)),OU=(e,t,n)=>TU(e,typeof t==`symbol`?t:t+``,n),kU=class extends Kn{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,OU(this,`subscriptions`,new Map),OU(this,`topicMap`,new vU),OU(this,`events`,new jt.EventEmitter),OU(this,`name`,kB),OU(this,`version`,`0.3`),OU(this,`pending`,new Map),OU(this,`cached`,[]),OU(this,`initialized`,!1),OU(this,`storagePrefix`,dB),OU(this,`subscribeTimeout`,(0,q.toMiliseconds)(q.ONE_MINUTE)),OU(this,`initialSubscribeTimeout`,(0,q.toMiliseconds)(q.ONE_SECOND*15)),OU(this,`clientId`),OU(this,`batchSubscribeTopicsLimit`,500),OU(this,`init`,async()=>{this.initialized||(this.logger.trace(`Initialized`),this.registerEventListeners(),await this.restore()),this.initialized=!0}),OU(this,`subscribe`,async(e,t)=>{this.isInitialized(),this.logger.debug(`Subscribing Topic`),this.logger.trace({type:`method`,method:`subscribe`,params:{topic:e,opts:t}});try{let n=$R(t),r={topic:e,relay:n,transportType:t?.transportType};this.pending.set(e,r);let i=await this.rpcSubscribe(e,n,t);return typeof i==`string`&&(this.onSubscribe(i,r),this.logger.debug(`Successfully Subscribed Topic`),this.logger.trace({type:`method`,method:`subscribe`,params:{topic:e,opts:t}})),i}catch(e){throw this.logger.debug(`Failed to Subscribe Topic`),this.logger.error(e),e}}),OU(this,`unsubscribe`,async(e,t)=>{this.isInitialized(),typeof t?.id<`u`?await this.unsubscribeById(e,t.id,t):await this.unsubscribeByTopic(e,t)}),OU(this,`isSubscribed`,e=>new Promise(t=>{t(this.topicMap.topics.includes(e))})),OU(this,`isKnownTopic`,e=>new Promise(t=>{t(this.topicMap.topics.includes(e)||this.pending.has(e)||this.cached.some(t=>t.topic===e))})),OU(this,`on`,(e,t)=>{this.events.on(e,t)}),OU(this,`once`,(e,t)=>{this.events.once(e,t)}),OU(this,`off`,(e,t)=>{this.events.off(e,t)}),OU(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),OU(this,`start`,async()=>{await this.onConnect()}),OU(this,`stop`,async()=>{await this.onDisconnect()}),OU(this,`restart`,async()=>{await this.restore(),await this.onRestart()}),OU(this,`checkPending`,async()=>{if(this.pending.size===0&&(!this.initialized||!this.relayer.connected))return;let e=[];this.pending.forEach(t=>{e.push(t)}),await this.batchSubscribe(e)}),OU(this,`registerEventListeners`,()=>{this.relayer.core.heartbeat.on(Pt.pulse,async()=>{await this.checkPending()}),this.events.on(OB.created,async e=>{let t=OB.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),await this.persist()}),this.events.on(OB.deleted,async e=>{let t=OB.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),await this.persist()})}),this.relayer=e,this.logger=g(t,this.name),this.clientId=``}get context(){return D(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 n=!1;try{n=this.getSubscription(e).topic===t}catch{}return n}reset(){this.cached=[],this.initialized=!0}onDisable(){this.cached=this.values,this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){let n=this.topicMap.get(e);await Promise.all(n.map(async n=>await this.unsubscribeById(e,n,t)))}async unsubscribeById(e,t,n){this.logger.debug(`Unsubscribing Topic`),this.logger.trace({type:`method`,method:`unsubscribe`,params:{topic:e,id:t,opts:n}});try{let r=$R(n);await this.restartToComplete({topic:e,id:t,relay:r}),await this.rpcUnsubscribe(e,t,r);let i=_z(`USER_DISCONNECTED`,`${this.name}, ${e}`);await this.onUnsubscribe(e,t,i),this.logger.debug(`Successfully Unsubscribed Topic`),this.logger.trace({type:`method`,method:`unsubscribe`,params:{topic:e,id:t,opts:n}})}catch(e){throw this.logger.debug(`Failed to Unsubscribe Topic`),this.logger.error(e),e}}async rpcSubscribe(e,t,n){(!n||n?.transportType===TB.relay)&&await this.restartToComplete({topic:e,id:e,relay:t});let r={method:ez(t.protocol).subscribe,params:{topic:e}};this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:r});let i=n?.internal?.throwOnFailedPublish;try{let t=await this.getSubscriptionId(e);if(n?.transportType===TB.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(r).catch(e=>this.logger.warn(e))},(0,q.toMiliseconds)(q.ONE_SECOND)),t;let a=await GP(new Promise(async t=>{let n=r=>{r.topic===e&&(this.events.removeListener(OB.created,n),t(r.id))};this.events.on(OB.created,n);try{let i=await GP(new Promise((e,t)=>{this.relayer.request(r).catch(e=>{this.logger.warn(e,e?.message),t(e)}).then(e)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener(OB.created,n),t(i)}catch{}}),this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!a&&i)throw Error(`Subscribing to ${e} failed, please try again`);return a?t:null}catch(e){if(this.logger.debug(`Outgoing Relay Subscribe Payload stalled`),this.relayer.events.emit(SB.connection_stalled),i)throw e}return null}async rpcBatchSubscribe(e){if(!e.length)return;let t=e[0].relay,n={method:ez(t.protocol).batchSubscribe,params:{topics:e.map(e=>e.topic)}};this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:n});try{await await GP(new Promise(e=>{this.relayer.request(n).catch(e=>this.logger.warn(e)).then(e)}),this.subscribeTimeout,`rpcBatchSubscribe failed, please try again`)}catch{this.relayer.events.emit(SB.connection_stalled)}}async rpcBatchFetchMessages(e){if(!e.length)return;let t=e[0].relay,n={method:ez(t.protocol).batchFetchMessages,params:{topics:e.map(e=>e.topic)}};this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:n});let r;try{r=await await GP(new Promise((e,t)=>{this.relayer.request(n).catch(e=>{this.logger.warn(e),t(e)}).then(e)}),this.subscribeTimeout,`rpcBatchFetchMessages failed, please try again`)}catch{this.relayer.events.emit(SB.connection_stalled)}return r}rpcUnsubscribe(e,t,n){let r={method:ez(n.protocol).unsubscribe,params:{topic:e,id:t}};return this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:r}),this.relayer.request(r)}onSubscribe(e,t){this.setSubscription(e,DU(EU({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(e=>{this.setSubscription(e.id,EU({},e)),this.pending.delete(e.topic)})}async onUnsubscribe(e,t,n){this.events.removeAllListeners(t),this.hasSubscription(t,e)&&this.deleteSubscription(t,n),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,EU({},t)),this.topicMap.set(t.topic,e),this.events.emit(OB.created,t)}getSubscription(e){this.logger.debug(`Getting subscription`),this.logger.trace({type:`method`,method:`getSubscription`,id:e});let t=this.subscriptions.get(e);if(!t){let{message:t}=Q(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}deleteSubscription(e,t){this.logger.debug(`Deleting subscription`),this.logger.trace({type:`method`,method:`deleteSubscription`,id:e,reason:t});let n=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(n.topic,e),this.events.emit(OB.deleted,DU(EU({},n),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(OB.sync)}async onRestart(){if(this.cached.length){let e=[...this.cached],t=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let n=0;n<t;n++){let t=e.splice(0,this.batchSubscribeTopicsLimit);await this.batchSubscribe(t)}}this.events.emit(OB.resubscribed)}async restore(){try{let e=await this.getRelayerSubscriptions();if(typeof e>`u`||!e.length)return;if(this.subscriptions.size){let{message:e}=Q(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),Error(e)}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 e=>DU(EU({},e),{id:await this.getSubscriptionId(e.topic)})))))}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);let t=await this.rpcBatchFetchMessages(e);t&&t.messages&&(await dF((0,q.toMiliseconds)(q.ONE_SECOND)),await this.relayer.handleBatchMessageEvents(t.messages))}async onConnect(){await this.restart(),this.reset()}onDisconnect(){this.onDisable()}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}async restartToComplete(e){!this.relayer.connected&&!this.relayer.connecting&&(this.cached.push(e),await this.relayer.transportOpen())}async getClientId(){return this.clientId||=await this.relayer.core.crypto.getClientId(),this.clientId}async getSubscriptionId(e){return IR(e+await this.getClientId())}},AU=Object.defineProperty,jU=Object.getOwnPropertySymbols,MU=Object.prototype.hasOwnProperty,NU=Object.prototype.propertyIsEnumerable,PU=(e,t,n)=>t in e?AU(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,FU=(e,t)=>{for(var n in t||={})MU.call(t,n)&&PU(e,n,t[n]);if(jU)for(var n of jU(t))NU.call(t,n)&&PU(e,n,t[n]);return e},IU=(e,t,n)=>PU(e,typeof t==`symbol`?t:t+``,n),LU=class extends Wn{constructor(e){super(e),IU(this,`protocol`,`wc`),IU(this,`version`,2),IU(this,`core`),IU(this,`logger`),IU(this,`events`,new jt.EventEmitter),IU(this,`provider`),IU(this,`messages`),IU(this,`subscriber`),IU(this,`publisher`),IU(this,`name`,xB),IU(this,`transportExplicitlyClosed`,!1),IU(this,`initialized`,!1),IU(this,`connectionAttemptInProgress`,!1),IU(this,`relayUrl`),IU(this,`projectId`),IU(this,`packageName`),IU(this,`bundleId`),IU(this,`hasExperiencedNetworkDisruption`,!1),IU(this,`pingTimeout`),IU(this,`heartBeatTimeout`,(0,q.toMiliseconds)(q.THIRTY_SECONDS+q.FIVE_SECONDS)),IU(this,`reconnectTimeout`),IU(this,`connectPromise`),IU(this,`reconnectInProgress`,!1),IU(this,`requestsInFlight`,[]),IU(this,`connectTimeout`,(0,q.toMiliseconds)(q.ONE_SECOND*15)),IU(this,`request`,async e=>{this.logger.debug(`Publishing Request Payload`);let t=e.id||W().toString();await this.toEstablishConnection();try{this.logger.trace({id:t,method:e.method,topic:e.params?.topic},`relayer.request - publishing...`);let n=`${t}:${e.params?.tag||``}`;this.requestsInFlight.push(n);let r=await this.provider.request(e);return this.requestsInFlight=this.requestsInFlight.filter(e=>e!==n),r}catch(e){throw this.logger.debug(`Failed to Publish Request: ${t}`),e}}),IU(this,`resetPingTimeout`,()=>{OP()&&(clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{var e,t;try{this.logger.debug({},`pingTimeout: Connection stalled, terminating...`),(t=(e=this.provider?.connection?.socket)?.terminate)==null||t.call(e)}catch(e){this.logger.warn(e,e?.message)}},this.heartBeatTimeout))}),IU(this,`onPayloadHandler`,e=>{this.onProviderPayload(e),this.resetPingTimeout()}),IU(this,`onConnectHandler`,()=>{this.logger.warn({},`Relayer connected 🛜`),this.startPingTimeout(),this.events.emit(SB.connect)}),IU(this,`onDisconnectHandler`,()=>{this.logger.warn({},`Relayer disconnected 🛑`),this.requestsInFlight=[],this.onProviderDisconnect()}),IU(this,`onProviderErrorHandler`,e=>{this.logger.fatal(`Fatal socket error: ${e.message}`),this.events.emit(SB.error,e),this.logger.fatal(`Fatal socket error received, closing transport`),this.transportClose()}),IU(this,`registerProviderListeners`,()=>{this.provider.on(CB.payload,this.onPayloadHandler),this.provider.on(CB.connect,this.onConnectHandler),this.provider.on(CB.disconnect,this.onDisconnectHandler),this.provider.on(CB.error,this.onProviderErrorHandler)}),this.core=e.core,this.logger=typeof e.logger<`u`&&typeof e.logger!=`string`?g(e.logger,this.name):(0,v.default)(x({level:e.logger||`error`})),this.messages=new rU(this.logger,e.core),this.subscriber=new kU(this,this.logger),this.publisher=new mU(this,this.logger),this.relayUrl=e?.relayUrl||`wss://relay.walletconnect.org`,this.projectId=e.projectId,AP()?this.packageName=PP():jP()&&(this.bundleId=PP()),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 D(this.logger)}get connected(){return this.provider?.connection?.socket?.readyState===1||!1}get connecting(){return this.provider?.connection?.socket?.readyState===0||this.connectPromise!==void 0||!1}async publish(e,t,n){this.isInitialized(),await this.publisher.publish(e,t,n),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now(),transportType:TB.relay},EB.outbound)}async subscribe(e,t){this.isInitialized(),(!(t!=null&&t.transportType)||t?.transportType===`relay`)&&await this.toEstablishConnection();let n=typeof t?.internal?.throwOnFailedPublish>`u`?!0:t?.internal?.throwOnFailedPublish,r=this.subscriber.topicMap.get(e)?.[0]||``,i,a=t=>{t.topic===e&&(this.subscriber.off(OB.created,a),i())};return await Promise.all([new Promise(e=>{i=e,this.subscriber.on(OB.created,a)}),new Promise(async(i,a)=>{r=await this.subscriber.subscribe(e,FU({internal:{throwOnFailedPublish:n}},t)).catch(e=>{n&&a(e)})||r,i()})]),r}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 GP(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,n)=>{await this.connect(e).then(t).catch(n).finally(()=>{this.connectPromise=void 0})}),await this.connectPromise),!this.connected)throw 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 tB())throw 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}let t=e.sort((e,t)=>e.publishedAt-t.publishedAt);this.logger.debug(`Batch of ${t.length} message events sorted`);for(let e of t)try{await this.onMessageEvent(e)}catch(e){this.logger.warn(e,`Error while processing batch message event: `+e?.message)}this.logger.trace(`Batch of ${t.length} message events processed`)}async onLinkMessageEvent(e,t){let{topic:n}=e;if(!t.sessionExists){let e={topic:n,expiry:XP(q.FIVE_MINUTES),relay:{protocol:`irn`},active:!1};await this.core.pairing.pairings.set(n,e)}this.events.emit(SB.message,e),await this.recordMessageEvent(e,EB.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(e,t)=>{let n=()=>{t(Error(`Connection interrupted while trying to subscribe`))};this.provider.once(CB.disconnect,n),await GP(new Promise((e,t)=>{this.provider.connect().then(e).catch(t)}),this.connectTimeout,`Socket stalled when trying to connect to ${this.relayUrl}`).catch(e=>{t(e)}).finally(()=>{this.provider.off(CB.disconnect,n),clearTimeout(this.reconnectTimeout)}),await new Promise(async(e,t)=>{let n=()=>{t(Error(`Connection interrupted while trying to subscribe`))};this.provider.once(CB.disconnect,n),await this.subscriber.start().then(e).catch(t).finally(()=>{this.provider.off(CB.disconnect,n)})}),this.hasExperiencedNetworkDisruption=!1,e()})}catch(e){await this.subscriber.stop();let t=e;this.logger.warn({},t.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(e=>setTimeout(e,(0,q.toMiliseconds)(t*1))),t++}}startPingTimeout(){var e,t;if(OP())try{(e=this.provider?.connection)!=null&&e.socket&&((t=this.provider?.connection?.socket)==null||t.on(`ping`,()=>{this.resetPingTimeout()})),this.resetPingTimeout()}catch(e){this.logger.warn(e,e?.message)}}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();let e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new L(new Du(BP({sdkVersion:wB,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){let{topic:n,message:r}=e;await this.messages.set(n,r,t)}async shouldIgnoreMessageEvent(e){let{topic:t,message:n}=e;if(!n||n.length===0)return this.logger.warn(`Ignoring invalid/empty message: ${n}`),!0;if(!await this.subscriber.isKnownTopic(t))return this.logger.warn(`Ignoring message for unknown topic ${t}`),!0;let r=this.messages.has(t,n);return r&&this.logger.warn(`Ignoring duplicate message: ${n}`),r}async onProviderPayload(e){if(this.logger.debug(`Incoming Relay Payload`),this.logger.trace({type:`payload`,direction:`incoming`,payload:e}),p(e)){if(!e.method.endsWith(`_subscription`))return;let t=e.params,{topic:n,message:r,publishedAt:i,attestation:a}=t.data,o={topic:n,message:r,publishedAt:i,transportType:TB.relay,attestation:a};this.logger.debug(`Emitting Relayer Payload`),this.logger.trace(FU({type:`event`,event:t.id},o)),this.events.emit(t.id,o),await this.acknowledgePayload(e),await this.onMessageEvent(o)}else ue(e)&&this.events.emit(SB.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,EB.inbound),this.events.emit(SB.message,e))}async acknowledgePayload(e){let t=d(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(CB.payload,this.onPayloadHandler),this.provider.off(CB.connect,this.onConnectHandler),this.provider.off(CB.disconnect,this.onDisconnectHandler),this.provider.off(CB.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await tB();aB(async t=>{e!==t&&(e=t,t?await this.transportOpen().catch(e=>this.logger.error(e,e?.message)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))})}async onProviderDisconnect(){clearTimeout(this.pingTimeout),this.events.emit(SB.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},(0,q.toMiliseconds)(.1)))))}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}async toEstablishConnection(){await this.confirmOnlineStateOrThrow(),!this.connected&&await this.connect()}};function RU(){}function zU(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)===`[object Object]`:!1}function BU(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function VU(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var HU=`[object RegExp]`,UU=`[object String]`,WU=`[object Number]`,GU=`[object Boolean]`,KU=`[object Arguments]`,qU=`[object Symbol]`,JU=`[object Date]`,YU=`[object Map]`,XU=`[object Set]`,ZU=`[object Array]`,QU=`[object Function]`,$U=`[object ArrayBuffer]`,eW=`[object Object]`,tW=`[object Error]`,nW=`[object DataView]`,rW=`[object Uint8Array]`,iW=`[object Uint8ClampedArray]`,aW=`[object Uint16Array]`,oW=`[object Uint32Array]`,sW=`[object BigUint64Array]`,cW=`[object Int8Array]`,lW=`[object Int16Array]`,uW=`[object Int32Array]`,dW=`[object BigInt64Array]`,fW=`[object Float32Array]`,pW=`[object Float64Array]`;function mW(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function hW(e,t,n){return gW(e,t,void 0,void 0,void 0,void 0,n)}function gW(e,t,n,r,i,a,o){let s=o(e,t,n,r,i,a);if(s!==void 0)return s;if(typeof e==typeof t)switch(typeof e){case`bigint`:case`string`:case`boolean`:case`symbol`:case`undefined`:return e===t;case`number`:return e===t||Object.is(e,t);case`function`:return e===t;case`object`:return _W(e,t,a,o)}return _W(e,t,a,o)}function _W(e,t,n,r){if(Object.is(e,t))return!0;let i=VU(e),a=VU(t);if(i===KU&&(i=eW),a===KU&&(a=eW),i!==a)return!1;switch(i){case UU:return e.toString()===t.toString();case WU:return mW(e.valueOf(),t.valueOf());case GU:case JU:case qU:return Object.is(e.valueOf(),t.valueOf());case HU:return e.source===t.source&&e.flags===t.flags;case QU:return e===t}n??=new Map;let o=n.get(e),s=n.get(t);if(o!=null&&s!=null)return o===t;n.set(e,t),n.set(t,e);try{switch(i){case YU:if(e.size!==t.size)return!1;for(let[i,a]of e.entries())if(!t.has(i)||!gW(a,t.get(i),i,e,t,n,r))return!1;return!0;case XU:{if(e.size!==t.size)return!1;let i=Array.from(e.values()),a=Array.from(t.values());for(let o=0;o<i.length;o++){let s=i[o],c=a.findIndex(i=>gW(s,i,void 0,e,t,n,r));if(c===-1)return!1;a.splice(c,1)}return!0}case ZU:case rW:case iW:case aW:case oW:case sW:case cW:case lW:case uW:case dW:case fW:case pW:if(typeof Buffer<`u`&&Buffer.isBuffer(e)!==Buffer.isBuffer(t)||e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!gW(e[i],t[i],i,e,t,n,r))return!1;return!0;case $U:return e.byteLength===t.byteLength?_W(new Uint8Array(e),new Uint8Array(t),n,r):!1;case nW:return e.byteLength!==t.byteLength||e.byteOffset!==t.byteOffset?!1:_W(new Uint8Array(e),new Uint8Array(t),n,r);case tW:return e.name===t.name&&e.message===t.message;case eW:{if(!(_W(e.constructor,t.constructor,n,r)||zU(e)&&zU(t)))return!1;let i=[...Object.keys(e),...BU(e)],a=[...Object.keys(t),...BU(t)];if(i.length!==a.length)return!1;for(let a=0;a<i.length;a++){let o=i[a],s=e[o];if(!Object.hasOwn(t,o))return!1;let c=t[o];if(!gW(s,c,o,e,t,n,r))return!1}return!0}default:return!1}}finally{n.delete(e),n.delete(t)}}function vW(e,t){return hW(e,t,RU)}var yW=Object.defineProperty,bW=Object.getOwnPropertySymbols,xW=Object.prototype.hasOwnProperty,SW=Object.prototype.propertyIsEnumerable,CW=(e,t,n)=>t in e?yW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,wW=(e,t)=>{for(var n in t||={})xW.call(t,n)&&CW(e,n,t[n]);if(bW)for(var n of bW(t))SW.call(t,n)&&CW(e,n,t[n]);return e},TW=(e,t,n)=>CW(e,typeof t==`symbol`?t:t+``,n),EW=class extends Gn{constructor(e,t,n,r=dB,i=void 0){super(e,t,n,r),this.core=e,this.logger=t,this.name=n,TW(this,`map`,new Map),TW(this,`version`,`0.3`),TW(this,`cached`,[]),TW(this,`initialized`,!1),TW(this,`getKey`),TW(this,`storagePrefix`,dB),TW(this,`recentlyDeleted`,[]),TW(this,`recentlyDeletedLimit`,200),TW(this,`init`,async()=>{this.initialized||=(this.logger.trace(`Initialized`),await this.restore(),this.cached.forEach(e=>{this.getKey&&e!==null&&!bz(e)?this.map.set(this.getKey(e),e):Dz(e)?this.map.set(e.id,e):Oz(e)&&this.map.set(e.topic,e)}),this.cached=[],!0)}),TW(this,`set`,async(e,t)=>{this.isInitialized(),this.map.has(e)?await this.update(e,t):(this.logger.debug(`Setting value`),this.logger.trace({type:`method`,method:`set`,key:e,value:t}),this.map.set(e,t),await this.persist())}),TW(this,`get`,e=>(this.isInitialized(),this.logger.debug(`Getting value`),this.logger.trace({type:`method`,method:`get`,key:e}),this.getData(e))),TW(this,`getAll`,e=>(this.isInitialized(),e?this.values.filter(t=>Object.keys(e).every(n=>vW(t[n],e[n]))):this.values)),TW(this,`update`,async(e,t)=>{this.isInitialized(),this.logger.debug(`Updating value`),this.logger.trace({type:`method`,method:`update`,key:e,update:t});let n=wW(wW({},this.getData(e)),t);this.map.set(e,n),await this.persist()}),TW(this,`delete`,async(e,t)=>{this.isInitialized(),this.map.has(e)&&(this.logger.debug(`Deleting value`),this.logger.trace({type:`method`,method:`delete`,key:e,reason:t}),this.map.delete(e),this.addToRecentlyDeleted(e),await this.persist())}),this.logger=g(t,this.name),this.storagePrefix=r,this.getKey=i}get context(){return D(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){let t=this.map.get(e);if(!t){if(this.recentlyDeleted.includes(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(t),Error(t)}let{message:t}=Q(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw this.logger.error(t),Error(t)}return t}async persist(){await this.setDataStore(this.values)}async restore(){try{let e=await this.getDataStore();if(typeof e>`u`||!e.length)return;if(this.map.size){let{message:e}=Q(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),Error(e)}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){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}},DW=Object.defineProperty,OW=(e,t,n)=>t in e?DW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kW=(e,t,n)=>OW(e,typeof t==`symbol`?t:t+``,n),AW=class{constructor(e,t){this.core=e,this.logger=t,kW(this,`name`,AB),kW(this,`version`,`0.3`),kW(this,`events`,new jt.default),kW(this,`pairings`),kW(this,`initialized`,!1),kW(this,`storagePrefix`,dB),kW(this,`ignoredPayloadTypes`,[1]),kW(this,`registeredMethods`,[]),kW(this,`init`,async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace(`Initialized`))}),kW(this,`register`,({methods:e})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...e])]}),kW(this,`create`,async e=>{this.isInitialized();let t=NR(),n=await this.core.crypto.setSymKey(t),r=XP(q.FIVE_MINUTES),i={protocol:`irn`},a={topic:n,expiry:r,relay:i,active:!1,methods:e?.methods},o=az({protocol:this.core.protocol,version:this.core.version,topic:n,symKey:t,relay:i,expiryTimestamp:r,methods:e?.methods});return this.events.emit(MB.create,a),this.core.expirer.set(n,r),await this.pairings.set(n,a),await this.core.relayer.subscribe(n,{transportType:e?.transportType}),{topic:n,uri:o}}),kW(this,`pair`,async e=>{this.isInitialized();let t=this.core.eventClient.createEvent({properties:{topic:e?.uri,trace:[WB.pairing_started]}});this.isValidPair(e,t);let{topic:n,symKey:r,relay:i,expiryTimestamp:a,methods:o}=nz(e.uri);t.props.properties.topic=n,t.addTrace(WB.pairing_uri_validation_success),t.addTrace(WB.pairing_uri_not_expired);let s;if(this.pairings.keys.includes(n)){if(s=this.pairings.get(n),t.addTrace(WB.existing_pairing),s.active)throw t.setError(GB.active_pairing_already_exists),Error(`Pairing already exists: ${n}. Please try again with a new connection URI.`);t.addTrace(WB.pairing_not_expired)}let c=a||XP(q.FIVE_MINUTES),l={topic:n,relay:i,expiry:c,active:!1,methods:o};this.core.expirer.set(n,c),await this.pairings.set(n,l),t.addTrace(WB.store_new_pairing),e.activatePairing&&await this.activate({topic:n}),this.events.emit(MB.create,l),t.addTrace(WB.emit_inactive_pairing),this.core.crypto.keychain.has(n)||await this.core.crypto.setSymKey(r,n),t.addTrace(WB.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{t.setError(GB.no_internet_connection)}try{await this.core.relayer.subscribe(n,{relay:i})}catch(e){throw t.setError(GB.subscribe_pairing_topic_failure),e}return t.addTrace(WB.subscribe_pairing_topic_success),l}),kW(this,`activate`,async({topic:e})=>{this.isInitialized();let t=XP(q.FIVE_MINUTES);this.core.expirer.set(e,t),await this.pairings.update(e,{active:!0,expiry:t})}),kW(this,`ping`,async e=>{this.isInitialized(),await this.isValidPing(e),this.logger.warn(`ping() is deprecated and will be removed in the next major release.`);let{topic:t}=e;if(this.pairings.keys.includes(t)){let e=await this.sendRequest(t,`wc_pairingPing`,{}),{done:n,resolve:r,reject:i}=WP();this.events.once(QP(`pairing_ping`,e),({error:e})=>{e?i(e):r()}),await n()}}),kW(this,`updateExpiry`,async({topic:e,expiry:t})=>{this.isInitialized(),await this.pairings.update(e,{expiry:t})}),kW(this,`updateMetadata`,async({topic:e,metadata:t})=>{this.isInitialized(),await this.pairings.update(e,{peerMetadata:t})}),kW(this,`getPairings`,()=>(this.isInitialized(),this.pairings.values)),kW(this,`disconnect`,async e=>{this.isInitialized(),await this.isValidDisconnect(e);let{topic:t}=e;this.pairings.keys.includes(t)&&(await this.sendRequest(t,`wc_pairingDelete`,_z(`USER_DISCONNECTED`)),await this.deletePairing(t))}),kW(this,`formatUriFromPairing`,e=>{this.isInitialized();let{topic:t,relay:n,expiry:r,methods:i}=e,a=this.core.crypto.keychain.get(t);return az({protocol:this.core.protocol,version:this.core.version,topic:t,symKey:a,relay:n,expiryTimestamp:r,methods:i})}),kW(this,`sendRequest`,async(e,t,n)=>{let r=te(t,n),i=await this.core.crypto.encode(e,r),a=jB[t].req;return this.core.history.set(e,r),this.core.relayer.publish(e,i,a),r.id}),kW(this,`sendResult`,async(e,t,n)=>{let r=d(e,n),i=await this.core.crypto.encode(t,r),a=jB[(await this.core.history.get(t,e)).request.method].res;await this.core.relayer.publish(t,i,a),await this.core.history.resolve(r)}),kW(this,`sendError`,async(e,t,n)=>{let r=w(e,n),i=await this.core.crypto.encode(t,r),a=(await this.core.history.get(t,e)).request.method,o=jB[a]?jB[a].res:jB.unregistered_method.res;await this.core.relayer.publish(t,i,o),await this.core.history.resolve(r)}),kW(this,`deletePairing`,async(e,t)=>{await this.core.relayer.unsubscribe(e),await Promise.all([this.pairings.delete(e,_z(`USER_DISCONNECTED`)),this.core.crypto.deleteSymKey(e),t?Promise.resolve():this.core.expirer.del(e)])}),kW(this,`cleanup`,async()=>{let e=this.pairings.getAll().filter(e=>ZP(e.expiry));await Promise.all(e.map(e=>this.deletePairing(e.topic)))}),kW(this,`onRelayEventRequest`,async e=>{let{topic:t,payload:n}=e;switch(n.method){case`wc_pairingPing`:return await this.onPairingPingRequest(t,n);case`wc_pairingDelete`:return await this.onPairingDeleteRequest(t,n);default:return await this.onUnknownRpcMethodRequest(t,n)}}),kW(this,`onRelayEventResponse`,async e=>{let{topic:t,payload:n}=e,r=(await this.core.history.get(t,n.id)).request.method;switch(r){case`wc_pairingPing`:return this.onPairingPingResponse(t,n);default:return this.onUnknownRpcMethodResponse(r)}}),kW(this,`onPairingPingRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidPing({topic:e}),await this.sendResult(n,e,!0),this.events.emit(MB.ping,{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.logger.error(t)}}),kW(this,`onPairingPingResponse`,(e,t)=>{let{id:n}=t;setTimeout(()=>{k(t)?this.events.emit(QP(`pairing_ping`,n),{}):O(t)&&this.events.emit(QP(`pairing_ping`,n),{error:t.error})},500)}),kW(this,`onPairingDeleteRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidDisconnect({topic:e}),await this.deletePairing(e),this.events.emit(MB.delete,{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.logger.error(t)}}),kW(this,`onUnknownRpcMethodRequest`,async(e,t)=>{let{id:n,method:r}=t;try{if(this.registeredMethods.includes(r))return;let t=_z(`WC_METHOD_UNSUPPORTED`,r);await this.sendError(n,e,t),this.logger.error(t)}catch(t){await this.sendError(n,e,t),this.logger.error(t)}}),kW(this,`onUnknownRpcMethodResponse`,e=>{this.registeredMethods.includes(e)||this.logger.error(_z(`WC_METHOD_UNSUPPORTED`,e))}),kW(this,`isValidPair`,(e,t)=>{var n;if(!Hz(e)){let{message:n}=Q(`MISSING_OR_INVALID`,`pair() params: ${e}`);throw t.setError(GB.malformed_pairing_uri),Error(n)}if(!Ez(e.uri)){let{message:n}=Q(`MISSING_OR_INVALID`,`pair() uri: ${e.uri}`);throw t.setError(GB.malformed_pairing_uri),Error(n)}let r=nz(e?.uri);if(!((n=r?.relay)!=null&&n.protocol)){let{message:e}=Q(`MISSING_OR_INVALID`,`pair() uri#relay-protocol`);throw t.setError(GB.malformed_pairing_uri),Error(e)}if(!(r!=null&&r.symKey)){let{message:e}=Q(`MISSING_OR_INVALID`,`pair() uri#symKey`);throw t.setError(GB.malformed_pairing_uri),Error(e)}if(r!=null&&r.expiryTimestamp&&(0,q.toMiliseconds)(r?.expiryTimestamp)<Date.now()){t.setError(GB.pairing_expired);let{message:e}=Q(`EXPIRED`,`pair() URI has expired. Please try again with a new connection URI.`);throw Error(e)}}),kW(this,`isValidPing`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),kW(this,`isValidDisconnect`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),kW(this,`isValidPairingTopic`,async e=>{if(!xz(e,!1)){let{message:t}=Q(`MISSING_OR_INVALID`,`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.pairings.keys.includes(e)){let{message:t}=Q(`NO_MATCHING_KEY`,`pairing topic doesn't exist: ${e}`);throw Error(t)}if(ZP(this.pairings.get(e).expiry)){await this.deletePairing(e);let{message:t}=Q(`EXPIRED`,`pairing topic: ${e}`);throw Error(t)}}),this.core=e,this.logger=g(t,this.name),this.pairings=new EW(this.core,this.logger,this.name,this.storagePrefix)}get context(){return D(this.logger)}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}registerRelayerEvents(){this.core.relayer.on(SB.message,async e=>{let{topic:t,message:n,transportType:r}=e;if(this.pairings.keys.includes(t)&&r!==TB.link_mode&&!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(n)))try{let e=await this.core.crypto.decode(t,n);p(e)?(this.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e})):ue(e)&&(await this.core.history.resolve(e),await this.onRelayEventResponse({topic:t,payload:e}),this.core.history.delete(t,e.id)),await this.core.relayer.messages.ack(t,n)}catch(e){this.logger.error(e)}})}registerExpirerEvents(){this.core.expirer.on(IB.expired,async e=>{let{topic:t}=YP(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit(MB.expire,{topic:t}))})}},jW=Object.defineProperty,MW=(e,t,n)=>t in e?jW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,NW=(e,t,n)=>MW(e,typeof t==`symbol`?t:t+``,n),PW=class extends Vn{constructor(e,t){super(e,t),this.core=e,this.logger=t,NW(this,`records`,new Map),NW(this,`events`,new jt.EventEmitter),NW(this,`name`,PB),NW(this,`version`,`0.3`),NW(this,`cached`,[]),NW(this,`initialized`,!1),NW(this,`storagePrefix`,dB),NW(this,`init`,async()=>{this.initialized||=(this.logger.trace(`Initialized`),await this.restore(),this.cached.forEach(e=>this.records.set(e.id,e)),this.cached=[],this.registerEventListeners(),!0)}),NW(this,`set`,(e,t,n)=>{if(this.isInitialized(),this.logger.debug(`Setting JSON-RPC request history record`),this.logger.trace({type:`method`,method:`set`,topic:e,request:t,chainId:n}),this.records.has(t.id))return;let r={id:t.id,topic:e,request:{method:t.method,params:t.params||null},chainId:n,expiry:XP(q.THIRTY_DAYS)};this.records.set(r.id,r),this.persist(),this.events.emit(NB.created,r)}),NW(this,`resolve`,async e=>{if(this.isInitialized(),this.logger.debug(`Updating JSON-RPC response history record`),this.logger.trace({type:`method`,method:`update`,response:e}),!this.records.has(e.id))return;let t=await this.getRecord(e.id);typeof t.response>`u`&&(t.response=O(e)?{error:e.error}:{result:e.result},this.records.set(t.id,t),this.persist(),this.events.emit(NB.updated,t))}),NW(this,`get`,async(e,t)=>(this.isInitialized(),this.logger.debug(`Getting record`),this.logger.trace({type:`method`,method:`get`,topic:e,id:t}),await this.getRecord(t))),NW(this,`delete`,(e,t)=>{this.isInitialized(),this.logger.debug(`Deleting record`),this.logger.trace({type:`method`,method:`delete`,id:t}),this.values.forEach(n=>{if(n.topic===e){if(typeof t<`u`&&n.id!==t)return;this.records.delete(n.id),this.events.emit(NB.deleted,n)}}),this.persist()}),NW(this,`exists`,async(e,t)=>(this.isInitialized(),this.records.has(t)?(await this.getRecord(t)).topic===e:!1)),NW(this,`on`,(e,t)=>{this.events.on(e,t)}),NW(this,`once`,(e,t)=>{this.events.once(e,t)}),NW(this,`off`,(e,t)=>{this.events.off(e,t)}),NW(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.logger=g(t,this.name)}get context(){return D(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(){let e=[];return this.values.forEach(t=>{if(typeof t.response<`u`)return;let n={topic:t.topic,request:te(t.request.method,t.request.params,t.id),chainId:t.chainId};return e.push(n)}),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();let t=this.records.get(e);if(!t){let{message:t}=Q(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(NB.sync)}async restore(){try{let e=await this.getJsonRpcRecords();if(typeof e>`u`||!e.length)return;if(this.records.size){let{message:e}=Q(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),Error(e)}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(NB.created,e=>{let t=NB.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.events.on(NB.updated,e=>{let t=NB.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.events.on(NB.deleted,e=>{let t=NB.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.core.heartbeat.on(Pt.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(t=>{(0,q.toMiliseconds)(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(NB.deleted,t,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}},FW=Object.defineProperty,IW=(e,t,n)=>t in e?FW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,LW=(e,t,n)=>IW(e,typeof t==`symbol`?t:t+``,n),RW=class extends qn{constructor(e,t){super(e,t),this.core=e,this.logger=t,LW(this,`expirations`,new Map),LW(this,`events`,new jt.EventEmitter),LW(this,`name`,FB),LW(this,`version`,`0.3`),LW(this,`cached`,[]),LW(this,`initialized`,!1),LW(this,`storagePrefix`,dB),LW(this,`init`,async()=>{this.initialized||=(this.logger.trace(`Initialized`),await this.restore(),this.cached.forEach(e=>this.expirations.set(e.target,e)),this.cached=[],this.registerEventListeners(),!0)}),LW(this,`has`,e=>{try{let t=this.formatTarget(e);return typeof this.getExpiration(t)<`u`}catch{return!1}}),LW(this,`set`,(e,t)=>{this.isInitialized();let n=this.formatTarget(e),r={target:n,expiry:t};this.expirations.set(n,r),this.checkExpiry(n,r),this.events.emit(IB.created,{target:n,expiration:r})}),LW(this,`get`,e=>{this.isInitialized();let t=this.formatTarget(e);return this.getExpiration(t)}),LW(this,`del`,e=>{if(this.isInitialized(),this.has(e)){let t=this.formatTarget(e),n=this.getExpiration(t);this.expirations.delete(t),this.events.emit(IB.deleted,{target:t,expiration:n})}}),LW(this,`on`,(e,t)=>{this.events.on(e,t)}),LW(this,`once`,(e,t)=>{this.events.once(e,t)}),LW(this,`off`,(e,t)=>{this.events.off(e,t)}),LW(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.logger=g(t,this.name)}get context(){return D(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 qP(e);if(typeof e==`number`)return JP(e);let{message:t}=Q(`UNKNOWN_TYPE`,`Target type: ${typeof e}`);throw 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(IB.sync)}async restore(){try{let e=await this.getExpirations();if(typeof e>`u`||!e.length)return;if(this.expirations.size){let{message:e}=Q(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),Error(e)}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){let t=this.expirations.get(e);if(!t){let{message:t}=Q(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw this.logger.warn(t),Error(t)}return t}checkExpiry(e,t){let{expiry:n}=t;(0,q.toMiliseconds)(n)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(IB.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(Pt.pulse,()=>this.checkExpirations()),this.events.on(IB.created,e=>{let t=IB.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()}),this.events.on(IB.expired,e=>{let t=IB.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()}),this.events.on(IB.deleted,e=>{let t=IB.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()})}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}},zW=Object.defineProperty,BW=(e,t,n)=>t in e?zW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,VW=(e,t,n)=>BW(e,typeof t==`symbol`?t:t+``,n),HW=class extends Jn{constructor(e,t,n){super(e,t,n),this.core=e,this.logger=t,this.store=n,VW(this,`name`,LB),VW(this,`abortController`),VW(this,`isDevEnv`),VW(this,`verifyUrlV3`,BB),VW(this,`storagePrefix`,dB),VW(this,`version`,2),VW(this,`publicKey`),VW(this,`fetchPromise`),VW(this,`init`,async()=>{this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&(0,q.toMiliseconds)(this.publicKey?.expiresAt)<Date.now()&&(this.logger.debug(`verify v2 public key expired`),await this.removePublicKey()))}),VW(this,`register`,async e=>{if(!MP()||this.isDevEnv)return;let t=window.location.origin,{id:n,decryptedId:r}=e,i=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${t}&id=${n}&decryptedId=${r}`;try{let e=(0,Ms.getDocument)(),t=this.startAbortTimer(q.ONE_SECOND*5),r=await new Promise((r,a)=>{let o=()=>{window.removeEventListener(`message`,c),e.body.removeChild(s),a(`attestation aborted`)};this.abortController.signal.addEventListener(`abort`,o);let s=e.createElement(`iframe`);s.src=i,s.style.display=`none`,s.addEventListener(`error`,o,{signal:this.abortController.signal});let c=i=>{if(i.data&&typeof i.data==`string`)try{let a=JSON.parse(i.data);if(a.type===`verify_attestation`){if(us(a.attestation).payload.id!==n)return;clearInterval(t),e.body.removeChild(s),this.abortController.signal.removeEventListener(`abort`,o),window.removeEventListener(`message`,c),r(a.attestation===null?``:a.attestation)}}catch(e){this.logger.warn(e)}};e.body.appendChild(s),window.addEventListener(`message`,c,{signal:this.abortController.signal})});return this.logger.debug(`jwt attestation`,r),r}catch(e){this.logger.warn(e)}return``}),VW(this,`resolve`,async e=>{if(this.isDevEnv)return``;let{attestationId:t,hash:n,encryptedId:r}=e;if(t===``){this.logger.debug(`resolve: attestationId is empty, skipping`);return}if(t){if(us(t).payload.id!==r)return;let e=await this.isValidJwtAttestation(t);if(e){if(!e.isVerified){this.logger.warn(`resolve: jwt attestation: origin url not verified`);return}return e}}if(!n)return;let i=this.getVerifyUrl(e?.verifyUrl);return this.fetchAttestation(n,i)}),VW(this,`fetchAttestation`,async(e,t)=>{this.logger.debug(`resolving attestation: ${e} from url: ${t}`);let n=this.startAbortTimer(q.ONE_SECOND*5),r=await fetch(`${t}/attestation/${e}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(n),r.status===200?await r.json():void 0}),VW(this,`getVerifyUrl`,e=>{let t=e||`https://verify.walletconnect.org`;return VB.includes(t)||(this.logger.info(`verify url: ${t}, not included in trusted list, assigning default: https://verify.walletconnect.org`),t=`https://verify.walletconnect.org`),t}),VW(this,`fetchPublicKey`,async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);let e=this.startAbortTimer(q.FIVE_SECONDS),t=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(e),await t.json()}catch(e){this.logger.warn(e)}}),VW(this,`persistPublicKey`,async e=>{this.logger.debug(`persisting public key to local storage`,e),await this.store.setItem(this.storeKey,e),this.publicKey=e}),VW(this,`removePublicKey`,async()=>{this.logger.debug(`removing verify v2 public key from storage`),await this.store.removeItem(this.storeKey),this.publicKey=void 0}),VW(this,`isValidJwtAttestation`,async e=>{let t=await this.getPublicKey();try{if(t)return this.validateAttestation(e,t)}catch(e){this.logger.error(e),this.logger.warn(`error validating attestation`)}let n=await this.fetchAndPersistPublicKey();try{if(n)return this.validateAttestation(e,n)}catch(e){this.logger.error(e),this.logger.warn(`error validating attestation`)}}),VW(this,`getPublicKey`,async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey()),VW(this,`fetchAndPersistPublicKey`,async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async e=>{let t=await this.fetchPublicKey();t&&(await this.persistPublicKey(t),e(t))});let e=await this.fetchPromise;return this.fetchPromise=void 0,e}),VW(this,`validateAttestation`,(e,t)=>{let n=QR(e,t.publicKey),r={hasExpired:(0,q.toMiliseconds)(n.exp)<Date.now(),payload:n};if(r.hasExpired)throw this.logger.warn(`resolve: jwt attestation expired`),Error(`JWT attestation expired`);return{origin:r.payload.origin,isScam:r.payload.isScam,isVerified:r.payload.isVerified}}),this.logger=g(t,this.name),this.abortController=new AbortController,this.isDevEnv=oF(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//verify:public:key`}get context(){return D(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),(0,q.toMiliseconds)(e))}},UW=Object.defineProperty,WW=(e,t,n)=>t in e?UW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,GW=(e,t,n)=>WW(e,typeof t==`symbol`?t:t+``,n),KW=class extends Yn{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,GW(this,`context`,HB),GW(this,`registerDeviceToken`,async e=>{let{clientId:t,token:n,notificationType:r,enableEncrypted:i=!1}=e,a=`${UB}/${this.projectId}/clients`;await fetch(a,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({client_id:t,type:r,token:n,always_raw:i})})}),this.logger=g(t,this.context)}},qW=Object.defineProperty,JW=Object.getOwnPropertySymbols,YW=Object.prototype.hasOwnProperty,XW=Object.prototype.propertyIsEnumerable,ZW=(e,t,n)=>t in e?qW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,QW=(e,t)=>{for(var n in t||={})YW.call(t,n)&&ZW(e,n,t[n]);if(JW)for(var n of JW(t))XW.call(t,n)&&ZW(e,n,t[n]);return e},$W=(e,t,n)=>ZW(e,typeof t==`symbol`?t:t+``,n),eG=class extends Xn{constructor(e,t,n=!0){super(e,t,n),this.core=e,this.logger=t,$W(this,`context`,ZB),$W(this,`storagePrefix`,dB),$W(this,`storageVersion`,XB),$W(this,`events`,new Map),$W(this,`shouldPersist`,!1),$W(this,`init`,async()=>{if(!oF())try{let e={eventId:aF(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:`INIT`,type:``,properties:{client_id:await this.core.crypto.getClientId(),user_agent:zP(this.core.relayer.protocol,this.core.relayer.version,wB)}}};await this.sendEvent([e])}catch(e){this.logger.warn(e)}}),$W(this,`createEvent`,e=>{let{event:t=`ERROR`,type:n=``,properties:{topic:r,trace:i}}=e,a=aF(),o=this.core.projectId||``,s=QW({eventId:a,timestamp:Date.now(),props:{event:t,type:n,properties:{topic:r,trace:i}},bundleId:o,domain:this.getAppDomain()},this.setMethods(a));return this.telemetryEnabled&&(this.events.set(a,s),this.shouldPersist=!0),s}),$W(this,`getEvent`,e=>{let{eventId:t,topic:n}=e;if(t)return this.events.get(t);let r=Array.from(this.events.values()).find(e=>e.props.properties.topic===n);if(r)return QW(QW({},r),this.setMethods(r.eventId))}),$W(this,`deleteEvent`,e=>{let{eventId:t}=e;this.events.delete(t),this.shouldPersist=!0}),$W(this,`setEventListeners`,()=>{this.core.heartbeat.on(Pt.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(e=>{(0,q.fromMiliseconds)(Date.now())-(0,q.fromMiliseconds)(e.timestamp)>86400&&(this.events.delete(e.eventId),this.shouldPersist=!0)})})}),$W(this,`setMethods`,e=>({addTrace:t=>this.addTrace(e,t),setError:t=>this.setError(e,t)})),$W(this,`addTrace`,(e,t)=>{let n=this.events.get(e);n&&(n.props.properties.trace.push(t),this.events.set(e,n),this.shouldPersist=!0)}),$W(this,`setError`,(e,t)=>{let n=this.events.get(e);n&&(n.props.type=t,n.timestamp=Date.now(),this.events.set(e,n),this.shouldPersist=!0)}),$W(this,`persist`,async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1}),$W(this,`restore`,async()=>{try{let e=await this.core.storage.getItem(this.storageKey)||[];if(!e.length)return;e.forEach(e=>{this.events.set(e.eventId,QW(QW({},e),this.setMethods(e.eventId)))})}catch(e){this.logger.warn(e)}}),$W(this,`submit`,async()=>{if(!this.telemetryEnabled||this.events.size===0)return;let e=[];for(let[t,n]of this.events)n.props.type&&e.push(n);if(e.length!==0)try{if((await this.sendEvent(e)).ok)for(let t of e)this.events.delete(t.eventId),this.shouldPersist=!0}catch(e){this.logger.warn(e)}}),$W(this,`sendEvent`,async e=>{let t=this.getAppDomain()?``:`&sp=desktop`;return await fetch(`${QB}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${wB}${t}`,{method:`POST`,body:JSON.stringify(e)})}),$W(this,`getAppDomain`,()=>IP().url),this.logger=g(t,this.context),this.telemetryEnabled=n,n?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+`//`+this.context}},tG=Object.defineProperty,nG=Object.getOwnPropertySymbols,rG=Object.prototype.hasOwnProperty,iG=Object.prototype.propertyIsEnumerable,aG=(e,t,n)=>t in e?tG(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oG=(e,t)=>{for(var n in t||={})rG.call(t,n)&&aG(e,n,t[n]);if(nG)for(var n of nG(t))iG.call(t,n)&&aG(e,n,t[n]);return e},sG=(e,t,n)=>aG(e,typeof t==`symbol`?t:t+``,n),cG=class e extends Ln{constructor(e){var t;super(e),sG(this,`protocol`,`wc`),sG(this,`version`,2),sG(this,`name`,uB),sG(this,`relayUrl`),sG(this,`projectId`),sG(this,`customStoragePrefix`),sG(this,`events`,new jt.EventEmitter),sG(this,`logger`),sG(this,`heartbeat`),sG(this,`relayer`),sG(this,`crypto`),sG(this,`storage`),sG(this,`history`),sG(this,`expirer`),sG(this,`pairing`),sG(this,`verify`),sG(this,`echoClient`),sG(this,`linkModeSupportedApps`),sG(this,`eventClient`),sG(this,`initialized`,!1),sG(this,`logChunkController`),sG(this,`on`,(e,t)=>this.events.on(e,t)),sG(this,`once`,(e,t)=>this.events.once(e,t)),sG(this,`off`,(e,t)=>this.events.off(e,t)),sG(this,`removeListener`,(e,t)=>this.events.removeListener(e,t)),sG(this,`dispatchEnvelope`,({topic:e,message:t,sessionExists:n})=>{if(!e||!t)return;let r={topic:e,message:t,publishedAt:Date.now(),transportType:TB.link_mode};this.relayer.onLinkMessageEvent(r,{sessionExists:n})}),this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||`wss://relay.walletconnect.org`,this.customStoragePrefix=e!=null&&e.customStoragePrefix?`:${e.customStoragePrefix}`:``;let{logger:n,chunkLoggerController:r}=T({opts:x({level:typeof e?.logger==`string`&&e.logger?e.logger:fB.logger,name:uB}),maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=r,(t=this.logChunkController)!=null&&t.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{var e,t;(e=this.logChunkController)!=null&&e.downloadLogsBlobInBrowser&&((t=this.logChunkController)==null||t.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()}))}),this.logger=g(n,this.name),this.heartbeat=new Ft,this.crypto=new KH(this,this.logger,e?.keychain),this.history=new PW(this,this.logger),this.expirer=new RW(this,this.logger),this.storage=e!=null&&e.storage?e.storage:new Nn(oG(oG({},pB),e?.storageOptions)),this.relayer=new LU({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new AW(this,this.logger),this.verify=new HW(this,this.logger,this.storage),this.echoClient=new KW(this.projectId||``,this.logger),this.linkModeSupportedApps=[],this.eventClient=new eG(this,this.logger,e?.telemetryEnabled)}static async init(t){let n=new e(t);await n.initialize();let r=await n.crypto.getClientId();return await n.storage.setItem(DB,r),n}get context(){return D(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){return this.logChunkController?.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(`WALLETCONNECT_LINK_MODE_APPS`,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(`WALLETCONNECT_LINK_MODE_APPS`)||[],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}}},lG=`client`,uG=`wc@2:${lG}:`,dG={name:lG,logger:`error`,controller:!1,relayUrl:`wss://relay.walletconnect.org`},fG=`WALLETCONNECT_DEEPLINK_CHOICE`,pG=`proposal`;q.THIRTY_DAYS;var mG=`Proposal expired`,hG=`session`,gG=q.SEVEN_DAYS,_G=`engine`,vG={wc_sessionPropose:{req:{ttl:q.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:q.ONE_DAY,prompt:!1,tag:1104},res:{ttl:q.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:q.ONE_DAY,prompt:!1,tag:1106},res:{ttl:q.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:q.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:q.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:q.ONE_DAY,prompt:!1,tag:1112},res:{ttl:q.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:q.ONE_DAY,prompt:!1,tag:1114},res:{ttl:q.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:q.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:q.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:q.FIVE_MINUTES,prompt:!1,tag:1119}}},yG={min:q.FIVE_MINUTES,max:q.SEVEN_DAYS},bG={idle:`IDLE`,active:`ACTIVE`},xG={eth_sendTransaction:{key:``},eth_sendRawTransaction:{key:``},wallet_sendCalls:{key:``},solana_signTransaction:{key:`signature`},solana_signAllTransactions:{key:`transactions`},solana_signAndSendTransaction:{key:`signature`}},SG=`request`,CG=[`wc_sessionPropose`,`wc_sessionRequest`,`wc_authRequest`,`wc_sessionAuthenticate`],wG=`auth`,TG=`authKeys`,EG=`pairingTopics`,DG=`requests`,OG=`wc@1.5:${wG}:`,kG=`${OG}:PUB_KEY`,AG=Object.defineProperty,jG=Object.defineProperties,MG=Object.getOwnPropertyDescriptors,NG=Object.getOwnPropertySymbols,PG=Object.prototype.hasOwnProperty,FG=Object.prototype.propertyIsEnumerable,IG=(e,t,n)=>t in e?AG(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,LG=(e,t)=>{for(var n in t||={})PG.call(t,n)&&IG(e,n,t[n]);if(NG)for(var n of NG(t))FG.call(t,n)&&IG(e,n,t[n]);return e},RG=(e,t)=>jG(e,MG(t)),$=(e,t,n)=>IG(e,typeof t==`symbol`?t:t+``,n),zG=class extends tr{constructor(e){super(e),$(this,`name`,_G),$(this,`events`,new jt.default),$(this,`initialized`,!1),$(this,`requestQueue`,{state:bG.idle,queue:[]}),$(this,`sessionRequestQueue`,{state:bG.idle,queue:[]}),$(this,`requestQueueDelay`,q.ONE_SECOND),$(this,`expectedPairingMethodMap`,new Map),$(this,`recentlyDeletedMap`,new Map),$(this,`recentlyDeletedLimit`,200),$(this,`relayMessageCache`,[]),$(this,`pendingSessions`,new Map),$(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(vG)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},(0,q.toMiliseconds)(this.requestQueueDelay)))}),$(this,`connect`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();let t=RG(LG({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t);let{pairingTopic:n,requiredNamespaces:r,optionalNamespaces:i,sessionProperties:a,scopedProperties:o,relays:s}=t,c=n,l,u=!1;try{if(c){let e=this.client.core.pairing.pairings.get(c);this.client.logger.warn(`connect() with existing pairing topic is deprecated and will be removed in the next major release.`),u=e.active}}catch(e){throw this.client.logger.error(`connect() -> pairing.get(${c}) failed`),e}if(!c||!u){let{topic:e,uri:t}=await this.client.core.pairing.create();c=e,l=t}if(!c){let{message:e}=Q(`NO_MATCHING_KEY`,`connect() pairing topic: ${c}`);throw Error(e)}let d=await this.client.core.crypto.generateKeyPair(),f=vG.wc_sessionPropose.req.ttl||q.FIVE_MINUTES,p=XP(f),m=RG(LG(LG({requiredNamespaces:r,optionalNamespaces:i,relays:s??[{protocol:`irn`}],proposer:{publicKey:d,metadata:this.client.metadata},expiryTimestamp:p,pairingTopic:c},a&&{sessionProperties:a}),o&&{scopedProperties:o}),{id:S()}),h=QP(`session_connect`,m.id),{reject:g,resolve:_,done:v}=WP(f,mG),y=({id:e})=>{e===m.id&&(this.client.events.off(`proposal_expire`,y),this.pendingSessions.delete(m.id),this.events.emit(h,{error:{message:`Proposal expired`,code:0}}))};return this.client.events.on(`proposal_expire`,y),this.events.once(h,({error:e,session:t})=>{this.client.events.off(`proposal_expire`,y),e?g(e):t&&_(t)}),await this.sendRequest({topic:c,method:`wc_sessionPropose`,params:m,throwOnFailedPublish:!0,clientRpcId:m.id}),await this.setProposal(m.id,m),{uri:l,approval:v}}),$(this,`pair`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(e)}catch(e){throw this.client.logger.error(`pair() failed`),e}}),$(this,`approve`,async e=>{let t=this.client.core.eventClient.createEvent({properties:{topic:(e?.id)?.toString(),trace:[KB.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(e){throw t.setError(qB.no_internet_connection),e}try{await this.isValidProposalId(e?.id)}catch(n){throw this.client.logger.error(`approve() -> proposal.get(${e?.id}) failed`),t.setError(qB.proposal_not_found),n}try{await this.isValidApprove(e)}catch(e){throw this.client.logger.error(`approve() -> isValidApprove() failed`),t.setError(qB.session_approve_namespace_validation_failure),e}let{id:n,relayProtocol:r,namespaces:i,sessionProperties:a,scopedProperties:o,sessionConfig:s}=e,c=this.client.proposal.get(n);this.client.core.eventClient.deleteEvent({eventId:t.eventId});let{pairingTopic:l,proposer:u,requiredNamespaces:d,optionalNamespaces:f}=c,p=this.client.core.eventClient?.getEvent({topic:l});p||=this.client.core.eventClient?.createEvent({type:KB.session_approve_started,properties:{topic:l,trace:[KB.session_approve_started,KB.session_namespaces_validation_success]}});let m=await this.client.core.crypto.generateKeyPair(),h=u.publicKey,g=await this.client.core.crypto.generateSharedKey(m,h),_=LG(LG(LG({relay:{protocol:r??`irn`},namespaces:i,controller:{publicKey:m,metadata:this.client.metadata},expiry:XP(gG)},a&&{sessionProperties:a}),o&&{scopedProperties:o}),s&&{sessionConfig:s}),v=TB.relay;p.addTrace(KB.subscribing_session_topic);try{await this.client.core.relayer.subscribe(g,{transportType:v})}catch(e){throw p.setError(qB.subscribe_session_topic_failure),e}p.addTrace(KB.subscribe_session_topic_success);let y=RG(LG({},_),{topic:g,requiredNamespaces:d,optionalNamespaces:f,pairingTopic:l,acknowledged:!1,self:_.controller,peer:{publicKey:u.publicKey,metadata:u.metadata},controller:m,transportType:TB.relay});await this.client.session.set(g,y),p.addTrace(KB.store_session);try{p.addTrace(KB.publishing_session_settle),await this.sendRequest({topic:g,method:`wc_sessionSettle`,params:_,throwOnFailedPublish:!0}).catch(e=>{throw p?.setError(qB.session_settle_publish_failure),e}),p.addTrace(KB.session_settle_publish_success),p.addTrace(KB.publishing_session_approve),await this.sendResult({id:n,topic:l,result:{relay:{protocol:r??`irn`},responderPublicKey:m},throwOnFailedPublish:!0}).catch(e=>{throw p?.setError(qB.session_approve_publish_failure),e}),p.addTrace(KB.session_approve_publish_success)}catch(e){throw this.client.logger.error(e),this.client.session.delete(g,_z(`USER_DISCONNECTED`)),await this.client.core.relayer.unsubscribe(g),e}return this.client.core.eventClient.deleteEvent({eventId:p.eventId}),await this.client.core.pairing.updateMetadata({topic:l,metadata:u.metadata}),await this.client.proposal.delete(n,_z(`USER_DISCONNECTED`)),await this.client.core.pairing.activate({topic:l}),await this.setExpiry(g,XP(gG)),{topic:g,acknowledged:()=>Promise.resolve(this.client.session.get(g))}}),$(this,`reject`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(e)}catch(e){throw this.client.logger.error(`reject() -> isValidReject() failed`),e}let{id:t,reason:n}=e,r;try{r=this.client.proposal.get(t).pairingTopic}catch(e){throw this.client.logger.error(`reject() -> proposal.get(${t}) failed`),e}r&&(await this.sendError({id:t,topic:r,error:n,rpcOpts:vG.wc_sessionPropose.reject}),await this.client.proposal.delete(t,_z(`USER_DISCONNECTED`)))}),$(this,`update`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(e)}catch(e){throw this.client.logger.error(`update() -> isValidUpdate() failed`),e}let{topic:t,namespaces:n}=e,{done:r,resolve:i,reject:a}=WP(),o=S(),s=W().toString(),c=this.client.session.get(t).namespaces;return this.events.once(QP(`session_update`,o),({error:e})=>{e?a(e):i()}),await this.client.session.update(t,{namespaces:n}),await this.sendRequest({topic:t,method:`wc_sessionUpdate`,params:{namespaces:n},throwOnFailedPublish:!0,clientRpcId:o,relayRpcId:s}).catch(e=>{this.client.logger.error(e),this.client.session.update(t,{namespaces:c}),a(e)}),{acknowledged:r}}),$(this,`extend`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(e)}catch(e){throw this.client.logger.error(`extend() -> isValidExtend() failed`),e}let{topic:t}=e,n=S(),{done:r,resolve:i,reject:a}=WP();return this.events.once(QP(`session_extend`,n),({error:e})=>{e?a(e):i()}),await this.setExpiry(t,XP(gG)),this.sendRequest({topic:t,method:`wc_sessionExtend`,params:{},clientRpcId:n,throwOnFailedPublish:!0}).catch(e=>{a(e)}),{acknowledged:r}}),$(this,`request`,async e=>{this.isInitialized();try{await this.isValidRequest(e)}catch(e){throw this.client.logger.error(`request() -> isValidRequest() failed`),e}let{chainId:t,request:n,topic:r,expiry:i=vG.wc_sessionRequest.req.ttl}=e,a=this.client.session.get(r);a?.transportType===TB.relay&&await this.confirmOnlineStateOrThrow();let o=S(),s=W().toString(),{done:c,resolve:l,reject:u}=WP(i,`Request expired. Please try again.`);this.events.once(QP(`session_request`,o),({error:e,result:t})=>{e?u(e):l(t)});let d=`wc_sessionRequest`,f=this.getAppLinkIfEnabled(a.peer.metadata,a.transportType);if(f)return await this.sendRequest({clientRpcId:o,relayRpcId:s,topic:r,method:d,params:{request:RG(LG({},n),{expiryTimestamp:XP(i)}),chainId:t},expiry:i,throwOnFailedPublish:!0,appLink:f}).catch(e=>u(e)),this.client.events.emit(`session_request_sent`,{topic:r,request:n,chainId:t,id:o}),await c();let p={request:RG(LG({},n),{expiryTimestamp:XP(i)}),chainId:t},m=this.shouldSetTVF(d,p);return await Promise.all([new Promise(async e=>{await this.sendRequest(LG({clientRpcId:o,relayRpcId:s,topic:r,method:d,params:p,expiry:i,throwOnFailedPublish:!0},m&&{tvf:this.getTVFParams(o,p)})).catch(e=>u(e)),this.client.events.emit(`session_request_sent`,{topic:r,request:n,chainId:t,id:o}),e()}),new Promise(async e=>{var t;(t=a.sessionConfig)!=null&&t.disableDeepLink||await eF({id:o,topic:r,wcDeepLink:await rF(this.client.core.storage,fG)}),e()}),c()]).then(e=>e[2])}),$(this,`respond`,async e=>{this.isInitialized(),await this.isValidRespond(e);let{topic:t,response:n}=e,{id:r}=n,i=this.client.session.get(t);i.transportType===TB.relay&&await this.confirmOnlineStateOrThrow();let a=this.getAppLinkIfEnabled(i.peer.metadata,i.transportType);k(n)?await this.sendResult({id:r,topic:t,result:n.result,throwOnFailedPublish:!0,appLink:a}):O(n)&&await this.sendError({id:r,topic:t,error:n.error,appLink:a}),this.cleanupAfterResponse(e)}),$(this,`ping`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(e)}catch(e){throw this.client.logger.error(`ping() -> isValidPing() failed`),e}let{topic:t}=e;if(this.client.session.keys.includes(t)){let e=S(),n=W().toString(),{done:r,resolve:i,reject:a}=WP();this.events.once(QP(`session_ping`,e),({error:e})=>{e?a(e):i()}),await Promise.all([this.sendRequest({topic:t,method:`wc_sessionPing`,params:{},throwOnFailedPublish:!0,clientRpcId:e,relayRpcId:n}),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}))}),$(this,`emit`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);let{topic:t,event:n,chainId:r}=e,i=W().toString(),a=S();await this.sendRequest({topic:t,method:`wc_sessionEvent`,params:{event:n,chainId:r},throwOnFailedPublish:!0,relayRpcId:i,clientRpcId:a})}),$(this,`disconnect`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(e);let{topic:t}=e;if(this.client.session.keys.includes(t))await this.sendRequest({topic:t,method:`wc_sessionDelete`,params:_z(`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{let{message:e}=Q(`MISMATCHED_TOPIC`,`Session or pairing topic not found: ${t}`);throw Error(e)}}),$(this,`find`,e=>(this.isInitialized(),this.client.session.getAll().filter(t=>Cz(t,e)))),$(this,`getPendingSessionRequests`,()=>this.client.pendingRequest.getAll()),$(this,`authenticate`,async(e,t)=>{this.isInitialized(),this.isValidAuthenticate(e);let n=t&&this.client.core.linkModeSupportedApps.includes(t)&&this.client.metadata.redirect?.linkMode,r=n?TB.link_mode:TB.relay;r===TB.relay&&await this.confirmOnlineStateOrThrow();let{chains:i,statement:a=``,uri:o,domain:s,nonce:c,type:l,exp:u,nbf:d,methods:f=[],expiry:p}=e,m=[...e.resources||[]],{topic:h,uri:g}=await this.client.core.pairing.create({methods:[`wc_sessionAuthenticate`],transportType:r});this.client.logger.info({message:`Generated new pairing`,pairing:{topic:h,uri:g}});let _=await this.client.core.crypto.generateKeyPair(),v=FR(_);if(await Promise.all([this.client.auth.authKeys.set(kG,{responseTopic:v,publicKey:_}),this.client.auth.pairingTopics.set(v,{topic:v,pairingTopic:h})]),await this.client.core.relayer.subscribe(v,{transportType:r}),this.client.logger.info(`sending request to new pairing topic: ${h}`),f.length>0){let{namespace:e}=TP(i[0]),t=AI(e,`request`,f);LI(m)&&(t=MI(t,m.pop())),m.push(t)}let y=p&&p>vG.wc_sessionAuthenticate.req.ttl?p:vG.wc_sessionAuthenticate.req.ttl,b={authPayload:{type:l??`caip122`,chains:i,statement:a,aud:o,domain:s,version:`1`,nonce:c,iat:new Date().toISOString(),exp:u,nbf:d,resources:m},requester:{publicKey:_,metadata:this.client.metadata},expiryTimestamp:XP(y)},x={requiredNamespaces:{},optionalNamespaces:{eip155:{chains:i,methods:[...new Set([`personal_sign`,...f])],events:[`chainChanged`,`accountsChanged`]}},relays:[{protocol:`irn`}],pairingTopic:h,proposer:{publicKey:_,metadata:this.client.metadata},expiryTimestamp:XP(vG.wc_sessionPropose.req.ttl),id:S()},{done:C,resolve:w,reject:T}=WP(y,`Request expired`),E=S(),D=QP(`session_connect`,x.id),O=QP(`session_request`,E),k=async({error:e,session:t})=>{this.events.off(O,A),e?T(e):t&&w({session:t})},A=async e=>{var n,i,a;if(await this.deletePendingAuthRequest(E,{message:`fulfilled`,code:0}),e.error){let t=_z(`WC_METHOD_UNSUPPORTED`,`wc_sessionAuthenticate`);return e.error.code===t.code?void 0:(this.events.off(D,k),T(e.error.message))}await this.deleteProposal(x.id),this.events.off(D,k);let{cacaos:o,responder:s}=e.result,c=[],l=[];for(let e of o){await xI({cacao:e,projectId:this.client.core.projectId})||(this.client.logger.error(e,`Signature verification failed`),T(_z(`SESSION_SETTLEMENT_FAILED`,`Signature verification failed`)));let{p:t}=e,n=LI(t.resources),r=[yI(t.iss)],i=bI(t.iss);if(n){let e=FI(n),t=II(n);c.push(...e),r.push(...t)}for(let e of r)l.push(`${e}:${i}`)}let u=await this.client.core.crypto.generateSharedKey(_,s.publicKey),d;c.length>0&&(d={topic:u,acknowledged:!0,self:{publicKey:_,metadata:this.client.metadata},peer:s,controller:s.publicKey,expiry:XP(gG),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:`irn`},pairingTopic:h,namespaces:mz([...new Set(c)],[...new Set(l)]),transportType:r},await this.client.core.relayer.subscribe(u,{transportType:r}),await this.client.session.set(u,d),h&&await this.client.core.pairing.updateMetadata({topic:h,metadata:s.metadata}),d=this.client.session.get(u)),(n=this.client.metadata.redirect)!=null&&n.linkMode&&(i=s.metadata.redirect)!=null&&i.linkMode&&(a=s.metadata.redirect)!=null&&a.universal&&t&&(this.client.core.addLinkModeSupportedApp(s.metadata.redirect.universal),this.client.session.update(u,{transportType:TB.link_mode})),w({auths:o,session:d})};this.events.once(D,k),this.events.once(O,A);let j;try{if(n){let e=te(`wc_sessionAuthenticate`,b,E);this.client.core.history.set(h,e),j=oz(t,h,await this.client.core.crypto.encode(``,e,{type:2,encoding:ER}))}else await Promise.all([this.sendRequest({topic:h,method:`wc_sessionAuthenticate`,params:b,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:E}),this.sendRequest({topic:h,method:`wc_sessionPropose`,params:x,expiry:vG.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:x.id})])}catch(e){throw this.events.off(D,k),this.events.off(O,A),e}return await this.setProposal(x.id,x),await this.setAuthRequest(E,{request:RG(LG({},b),{verifyContext:{}}),pairingTopic:h,transportType:r}),{uri:j??g,response:C}}),$(this,`approveSessionAuthenticate`,async e=>{let{id:t,auths:n}=e,r=this.client.core.eventClient.createEvent({properties:{topic:t.toString(),trace:[JB.authenticated_session_approve_started]}});try{this.isInitialized()}catch(e){throw r.setError(YB.no_internet_connection),e}let i=this.getPendingAuthRequest(t);if(!i)throw r.setError(YB.authenticated_session_pending_request_not_found),Error(`Could not find pending auth request with id ${t}`);let a=i.transportType||TB.relay;a===TB.relay&&await this.confirmOnlineStateOrThrow();let o=i.requester.publicKey,s=await this.client.core.crypto.generateKeyPair(),c=FR(o),l={type:1,receiverPublicKey:o,senderPublicKey:s},u=[],d=[];for(let e of n){if(!await xI({cacao:e,projectId:this.client.core.projectId})){r.setError(YB.invalid_cacao);let e=_z(`SESSION_SETTLEMENT_FAILED`,`Signature verification failed`);throw await this.sendError({id:t,topic:c,error:e,encodeOpts:l}),Error(e.message)}r.addTrace(JB.cacaos_verified);let{p:n}=e,i=LI(n.resources),a=[yI(n.iss)],o=bI(n.iss);if(i){let e=FI(i),t=II(i);u.push(...e),a.push(...t)}for(let e of a)d.push(`${e}:${o}`)}let f=await this.client.core.crypto.generateSharedKey(s,o);r.addTrace(JB.create_authenticated_session_topic);let p;if(u?.length>0){p={topic:f,acknowledged:!0,self:{publicKey:s,metadata:this.client.metadata},peer:{publicKey:o,metadata:i.requester.metadata},controller:o,expiry:XP(gG),authentication:n,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:`irn`},pairingTopic:i.pairingTopic,namespaces:mz([...new Set(u)],[...new Set(d)]),transportType:a},r.addTrace(JB.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(f,{transportType:a})}catch(e){throw r.setError(YB.subscribe_authenticated_session_topic_failure),e}r.addTrace(JB.subscribe_authenticated_session_topic_success),await this.client.session.set(f,p),r.addTrace(JB.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:i.pairingTopic,metadata:i.requester.metadata})}r.addTrace(JB.publishing_authenticated_session_approve);try{await this.sendResult({topic:c,id:t,result:{cacaos:n,responder:{publicKey:s,metadata:this.client.metadata}},encodeOpts:l,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(i.requester.metadata,a)})}catch(e){throw r.setError(YB.authenticated_session_approve_publish_failure),e}return await this.client.auth.requests.delete(t,{message:`fulfilled`,code:0}),await this.client.core.pairing.activate({topic:i.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:r.eventId}),{session:p}}),$(this,`rejectSessionAuthenticate`,async e=>{this.isInitialized();let{id:t,reason:n}=e,r=this.getPendingAuthRequest(t);if(!r)throw Error(`Could not find pending auth request with id ${t}`);r.transportType===TB.relay&&await this.confirmOnlineStateOrThrow();let i=r.requester.publicKey,a=await this.client.core.crypto.generateKeyPair(),o=FR(i),s={type:1,receiverPublicKey:i,senderPublicKey:a};await this.sendError({id:t,topic:o,error:n,encodeOpts:s,rpcOpts:vG.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(r.requester.metadata,r.transportType)}),await this.client.auth.requests.delete(t,{message:`rejected`,code:0}),await this.client.proposal.delete(t,_z(`USER_DISCONNECTED`))}),$(this,`formatAuthMessage`,e=>{this.isInitialized();let{request:t,iss:n}=e;return SI(t,n)}),$(this,`processRelayMessageCache`,()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{let e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e){this.client.logger.error(e)}},50)}),$(this,`cleanupDuplicatePairings`,async e=>{if(e.pairingTopic)try{let t=this.client.core.pairing.pairings.get(e.pairingTopic),n=this.client.core.pairing.pairings.getAll().filter(n=>n.peerMetadata?.url&&n.peerMetadata?.url===e.peer.metadata.url&&n.topic&&n.topic!==t.topic);if(n.length===0)return;this.client.logger.info(`Cleaning up ${n.length} duplicate pairing(s)`),await Promise.all(n.map(e=>this.client.core.pairing.disconnect({topic:e.topic}))),this.client.logger.info(`Duplicate pairings clean up finished`)}catch(e){this.client.logger.error(e)}}),$(this,`deleteSession`,async e=>{let{topic:t,expirerHasDeleted:n=!1,emitEvent:r=!0,id:i=0}=e,{self:a}=this.client.session.get(t);await this.client.core.relayer.unsubscribe(t),await this.client.session.delete(t,_z(`USER_DISCONNECTED`)),this.addToRecentlyDeleted(t,`session`),this.client.core.crypto.keychain.has(a.publicKey)&&await this.client.core.crypto.deleteKeyPair(a.publicKey),this.client.core.crypto.keychain.has(t)&&await this.client.core.crypto.deleteSymKey(t),n||this.client.core.expirer.del(t),this.client.core.storage.removeItem(fG).catch(e=>this.client.logger.warn(e)),this.getPendingSessionRequests().forEach(e=>{e.topic===t&&this.deletePendingSessionRequest(e.id,_z(`USER_DISCONNECTED`))}),t===this.sessionRequestQueue.queue[0]?.topic&&(this.sessionRequestQueue.state=bG.idle),r&&this.client.events.emit(`session_delete`,{id:i,topic:t})}),$(this,`deleteProposal`,async(e,t)=>{if(t)try{let t=this.client.proposal.get(e);this.client.core.eventClient.getEvent({topic:t.pairingTopic})?.setError(qB.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,_z(`USER_DISCONNECTED`)),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,`proposal`)}),$(this,`deletePendingSessionRequest`,async(e,t,n=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),n?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,`request`),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(t=>t.id!==e),n&&(this.sessionRequestQueue.state=bG.idle,this.client.events.emit(`session_request_expire`,{id:e}))}),$(this,`deletePendingAuthRequest`,async(e,t,n=!1)=>{await Promise.all([this.client.auth.requests.delete(e,t),n?Promise.resolve():this.client.core.expirer.del(e)])}),$(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}))}),$(this,`setProposal`,async(e,t)=>{this.client.core.expirer.set(e,XP(vG.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)}),$(this,`setAuthRequest`,async(e,t)=>{let{request:n,pairingTopic:r,transportType:i=TB.relay}=t;this.client.core.expirer.set(e,n.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:n.authPayload,requester:n.requester,expiryTimestamp:n.expiryTimestamp,id:e,pairingTopic:r,verifyContext:n.verifyContext,transportType:i})}),$(this,`setPendingSessionRequest`,async e=>{let{id:t,topic:n,params:r,verifyContext:i}=e,a=r.request.expiryTimestamp||XP(vG.wc_sessionRequest.req.ttl);this.client.core.expirer.set(t,a),await this.client.pendingRequest.set(t,{id:t,topic:n,params:r,verifyContext:i})}),$(this,`sendRequest`,async e=>{let{topic:t,method:n,params:r,expiry:i,relayRpcId:a,clientRpcId:o,throwOnFailedPublish:s,appLink:c,tvf:l}=e,u=te(n,r,o),d,f=!!c;try{let e=f?ER:TR;d=await this.client.core.crypto.encode(t,u,{encoding:e})}catch(e){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${t} failed`),e}let p;if(CG.includes(n)){let e=IR(JSON.stringify(u)),t=IR(d);p=await this.client.core.verify.register({id:t,decryptedId:e})}let m=vG[n].req;if(m.attestation=p,i&&(m.ttl=i),a&&(m.id=a),this.client.core.history.set(t,u),f){let e=oz(c,t,d);await global.Linking.openURL(e,this.client.name)}else{let e=vG[n].req;i&&(e.ttl=i),a&&(e.id=a),e.tvf=RG(LG({},l),{correlationId:u.id}),s?(e.internal=RG(LG({},e.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(t,d,e)):this.client.core.relayer.publish(t,d,e).catch(e=>this.client.logger.error(e))}return u.id}),$(this,`sendResult`,async e=>{let{id:t,topic:n,result:r,throwOnFailedPublish:i,encodeOpts:a,appLink:o}=e,s=d(t,r),c,l=o&&typeof(global==null?void 0:global.Linking)<`u`;try{let e=l?ER:TR;c=await this.client.core.crypto.encode(n,s,RG(LG({},a||{}),{encoding:e}))}catch(e){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${n} failed`),e}let u,f;try{u=await this.client.core.history.get(n,t);let e=u.request;try{this.shouldSetTVF(e.method,e.params)&&(f=this.getTVFParams(t,e.params,r))}catch(e){this.client.logger.warn(`sendResult() -> getTVFParams() failed`,e)}}catch(e){throw this.client.logger.error(`sendResult() -> history.get(${n}, ${t}) failed`),e}if(l){let e=oz(o,n,c);await global.Linking.openURL(e,this.client.name)}else{let e=vG[u.request.method].res;e.tvf=RG(LG({},f),{correlationId:t}),i?(e.internal=RG(LG({},e.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(n,c,e)):this.client.core.relayer.publish(n,c,e).catch(e=>this.client.logger.error(e))}await this.client.core.history.resolve(s)}),$(this,`sendError`,async e=>{let{id:t,topic:n,error:r,encodeOpts:i,rpcOpts:a,appLink:o}=e,s=w(t,r),c,l=o&&typeof(global==null?void 0:global.Linking)<`u`;try{let e=l?ER:TR;c=await this.client.core.crypto.encode(n,s,RG(LG({},i||{}),{encoding:e}))}catch(e){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${n} failed`),e}let u;try{u=await this.client.core.history.get(n,t)}catch(e){throw this.client.logger.error(`sendError() -> history.get(${n}, ${t}) failed`),e}if(l){let e=oz(o,n,c);await global.Linking.openURL(e,this.client.name)}else{let e=u.request.method,t=a||vG[e].res;this.client.core.relayer.publish(n,c,t)}await this.client.core.history.resolve(s)}),$(this,`cleanup`,async()=>{let e=[],t=[];this.client.session.getAll().forEach(t=>{let n=!1;ZP(t.expiry)&&(n=!0),this.client.core.crypto.keychain.has(t.topic)||(n=!0),n&&e.push(t.topic)}),this.client.proposal.getAll().forEach(e=>{ZP(e.expiryTimestamp)&&t.push(e.id)}),await Promise.all([...e.map(e=>this.deleteSession({topic:e})),...t.map(e=>this.deleteProposal(e))])}),$(this,`onProviderMessageEvent`,async e=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(e):await this.onRelayMessage(e)}),$(this,`onRelayEventRequest`,async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()}),$(this,`processRequestsQueue`,async()=>{if(this.requestQueue.state===bG.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=bG.active;let e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(e){this.client.logger.warn(e)}}this.requestQueue.state=bG.idle}),$(this,`processRequest`,async e=>{let{topic:t,payload:n,attestation:r,transportType:i,encryptedId:a}=e,o=n.method;if(!this.shouldIgnorePairingRequest({topic:t,requestMethod:o}))switch(o){case`wc_sessionPropose`:return await this.onSessionProposeRequest({topic:t,payload:n,attestation:r,encryptedId:a});case`wc_sessionSettle`:return await this.onSessionSettleRequest(t,n);case`wc_sessionUpdate`:return await this.onSessionUpdateRequest(t,n);case`wc_sessionExtend`:return await this.onSessionExtendRequest(t,n);case`wc_sessionPing`:return await this.onSessionPingRequest(t,n);case`wc_sessionDelete`:return await this.onSessionDeleteRequest(t,n);case`wc_sessionRequest`:return await this.onSessionRequest({topic:t,payload:n,attestation:r,encryptedId:a,transportType:i});case`wc_sessionEvent`:return await this.onSessionEventRequest(t,n);case`wc_sessionAuthenticate`:return await this.onSessionAuthenticateRequest({topic:t,payload:n,attestation:r,encryptedId:a,transportType:i});default:return this.client.logger.info(`Unsupported request method ${o}`)}}),$(this,`onRelayEventResponse`,async e=>{let{topic:t,payload:n,transportType:r}=e,i=(await this.client.core.history.get(t,n.id)).request.method;switch(i){case`wc_sessionPropose`:return this.onSessionProposeResponse(t,n,r);case`wc_sessionSettle`:return this.onSessionSettleResponse(t,n);case`wc_sessionUpdate`:return this.onSessionUpdateResponse(t,n);case`wc_sessionExtend`:return this.onSessionExtendResponse(t,n);case`wc_sessionPing`:return this.onSessionPingResponse(t,n);case`wc_sessionRequest`:return this.onSessionRequestResponse(t,n);case`wc_sessionAuthenticate`:return this.onSessionAuthenticateResponse(t,n);default:return this.client.logger.info(`Unsupported response method ${i}`)}}),$(this,`onRelayEventUnknownPayload`,e=>{let{topic:t}=e,{message:n}=Q(`MISSING_OR_INVALID`,`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw Error(n)}),$(this,`shouldIgnorePairingRequest`,e=>{let{topic:t,requestMethod:n}=e,r=this.expectedPairingMethodMap.get(t);return!r||r.includes(n)?!1:!!(r.includes(`wc_sessionAuthenticate`)&&this.client.events.listenerCount(`session_authenticate`)>0)}),$(this,`onSessionProposeRequest`,async e=>{let{topic:t,payload:n,attestation:r,encryptedId:i}=e,{params:a,id:o}=n;try{let e=this.client.core.eventClient.getEvent({topic:t});this.client.events.listenerCount(`session_proposal`)===0&&(console.warn(`No listener for session_proposal event`),e?.setError(GB.proposal_listener_not_found)),this.isValidConnect(LG({},n.params));let s=LG({id:o,pairingTopic:t,expiryTimestamp:a.expiryTimestamp||XP(vG.wc_sessionPropose.req.ttl)},a);await this.setProposal(o,s);let c=await this.getVerifyContext({attestationId:r,hash:IR(JSON.stringify(n)),encryptedId:i,metadata:s.proposer.metadata});e?.addTrace(WB.emit_session_proposal),this.client.events.emit(`session_proposal`,{id:o,params:s,verifyContext:c})}catch(e){await this.sendError({id:o,topic:t,error:e,rpcOpts:vG.wc_sessionPropose.autoReject}),this.client.logger.error(e)}}),$(this,`onSessionProposeResponse`,async(e,t,n)=>{let{id:r}=t;if(k(t)){let{result:i}=t;this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,result:i});let a=this.client.proposal.get(r);this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,proposal:a});let o=a.proposer.publicKey;this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,selfPublicKey:o});let s=i.responderPublicKey;this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,peerPublicKey:s});let c=await this.client.core.crypto.generateSharedKey(o,s);this.pendingSessions.set(r,{sessionTopic:c,pairingTopic:e,proposalId:r,publicKey:o});let l=await this.client.core.relayer.subscribe(c,{transportType:n});this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,subscriptionId:l}),await this.client.core.pairing.activate({topic:e})}else if(O(t)){await this.client.proposal.delete(r,_z(`USER_DISCONNECTED`));let e=QP(`session_connect`,r);if(this.events.listenerCount(e)===0)throw Error(`emitting ${e} without any listeners, 954`);this.events.emit(e,{error:t.error})}}),$(this,`onSessionSettleRequest`,async(e,t)=>{let{id:n,params:r}=t;try{this.isValidSessionSettleRequest(r);let{relay:n,controller:i,expiry:a,namespaces:o,sessionProperties:s,scopedProperties:c,sessionConfig:l}=t.params,u=[...this.pendingSessions.values()].find(t=>t.sessionTopic===e);if(!u)return this.client.logger.error(`Pending session not found for topic ${e}`);let d=this.client.proposal.get(u.proposalId),f=RG(LG(LG(LG({topic:e,relay:n,expiry:a,namespaces:o,acknowledged:!0,pairingTopic:u.pairingTopic,requiredNamespaces:d.requiredNamespaces,optionalNamespaces:d.optionalNamespaces,controller:i.publicKey,self:{publicKey:u.publicKey,metadata:this.client.metadata},peer:{publicKey:i.publicKey,metadata:i.metadata}},s&&{sessionProperties:s}),c&&{scopedProperties:c}),l&&{sessionConfig:l}),{transportType:TB.relay});await this.client.session.set(f.topic,f),await this.setExpiry(f.topic,f.expiry),await this.client.core.pairing.updateMetadata({topic:u.pairingTopic,metadata:f.peer.metadata}),this.client.events.emit(`session_connect`,{session:f}),this.events.emit(QP(`session_connect`,u.proposalId),{session:f}),this.pendingSessions.delete(u.proposalId),this.deleteProposal(u.proposalId,!1),this.cleanupDuplicatePairings(f),await this.sendResult({id:t.id,topic:e,result:!0,throwOnFailedPublish:!0})}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),$(this,`onSessionSettleResponse`,async(e,t)=>{let{id:n}=t;k(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(QP(`session_approve`,n),{})):O(t)&&(await this.client.session.delete(e,_z(`USER_DISCONNECTED`)),this.events.emit(QP(`session_approve`,n),{error:t.error}))}),$(this,`onSessionUpdateRequest`,async(e,t)=>{let{params:n,id:r}=t;try{let t=`${e}_session_update`,i=lB.get(t);if(i&&this.isRequestOutOfSync(i,r)){this.client.logger.warn(`Discarding out of sync request - ${r}`),this.sendError({id:r,topic:e,error:_z(`INVALID_UPDATE_REQUEST`)});return}this.isValidUpdate(LG({topic:e},n));try{lB.set(t,r),await this.client.session.update(e,{namespaces:n.namespaces}),await this.sendResult({id:r,topic:e,result:!0,throwOnFailedPublish:!0})}catch(e){throw lB.delete(t),e}this.client.events.emit(`session_update`,{id:r,topic:e,params:n})}catch(t){await this.sendError({id:r,topic:e,error:t}),this.client.logger.error(t)}}),$(this,`isRequestOutOfSync`,(e,t)=>t.toString().slice(0,-3)<e.toString().slice(0,-3)),$(this,`onSessionUpdateResponse`,(e,t)=>{let{id:n}=t,r=QP(`session_update`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);k(t)?this.events.emit(QP(`session_update`,n),{}):O(t)&&this.events.emit(QP(`session_update`,n),{error:t.error})}),$(this,`onSessionExtendRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,XP(gG)),await this.sendResult({id:n,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(`session_extend`,{id:n,topic:e})}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),$(this,`onSessionExtendResponse`,(e,t)=>{let{id:n}=t,r=QP(`session_extend`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);k(t)?this.events.emit(QP(`session_extend`,n),{}):O(t)&&this.events.emit(QP(`session_extend`,n),{error:t.error})}),$(this,`onSessionPingRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidPing({topic:e}),await this.sendResult({id:n,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(`session_ping`,{id:n,topic:e})}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),$(this,`onSessionPingResponse`,(e,t)=>{let{id:n}=t,r=QP(`session_ping`,n);setTimeout(()=>{if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners 2176`);k(t)?this.events.emit(QP(`session_ping`,n),{}):O(t)&&this.events.emit(QP(`session_ping`,n),{error:t.error})},500)}),$(this,`onSessionDeleteRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),Promise.all([new Promise(t=>{this.client.core.relayer.once(SB.publish,async()=>{t(await this.deleteSession({topic:e,id:n}))})}),this.sendResult({id:n,topic:e,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:_z(`USER_DISCONNECTED`)})]).catch(e=>this.client.logger.error(e))}catch(e){this.client.logger.error(e)}}),$(this,`onSessionRequest`,async e=>{var t,n;let{topic:r,payload:i,attestation:a,encryptedId:o,transportType:s}=e,{id:c,params:l}=i;try{await this.isValidRequest(LG({topic:r},l));let e=this.client.session.get(r),i={id:c,topic:r,params:l,verifyContext:await this.getVerifyContext({attestationId:a,hash:IR(JSON.stringify(te(`wc_sessionRequest`,l,c))),encryptedId:o,metadata:e.peer.metadata,transportType:s})};await this.setPendingSessionRequest(i),s===TB.link_mode&&(t=e.peer.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp(e.peer.metadata.redirect?.universal),(n=this.client.signConfig)!=null&&n.disableRequestQueue?this.emitSessionRequest(i):(this.addSessionRequestToSessionRequestQueue(i),this.processSessionRequestQueue())}catch(e){await this.sendError({id:c,topic:r,error:e}),this.client.logger.error(e)}}),$(this,`onSessionRequestResponse`,(e,t)=>{let{id:n}=t,r=QP(`session_request`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);k(t)?this.events.emit(QP(`session_request`,n),{result:t.result}):O(t)&&this.events.emit(QP(`session_request`,n),{error:t.error})}),$(this,`onSessionEventRequest`,async(e,t)=>{let{id:n,params:r}=t;try{let t=`${e}_session_event_${r.event.name}`,i=lB.get(t);if(i&&this.isRequestOutOfSync(i,n)){this.client.logger.info(`Discarding out of sync request - ${n}`);return}this.isValidEmit(LG({topic:e},r)),this.client.events.emit(`session_event`,{id:n,topic:e,params:r}),lB.set(t,n)}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),$(this,`onSessionAuthenticateResponse`,(e,t)=>{let{id:n}=t;this.client.logger.trace({type:`method`,method:`onSessionAuthenticateResponse`,topic:e,payload:t}),k(t)?this.events.emit(QP(`session_request`,n),{result:t.result}):O(t)&&this.events.emit(QP(`session_request`,n),{error:t.error})}),$(this,`onSessionAuthenticateRequest`,async e=>{var t;let{topic:n,payload:r,attestation:i,encryptedId:a,transportType:o}=e;try{let{requester:e,authPayload:s,expiryTimestamp:c}=r.params,l=await this.getVerifyContext({attestationId:i,hash:IR(JSON.stringify(r)),encryptedId:a,metadata:e.metadata,transportType:o}),u={requester:e,pairingTopic:n,id:r.id,authPayload:s,verifyContext:l,expiryTimestamp:c};await this.setAuthRequest(r.id,{request:u,pairingTopic:n,transportType:o}),o===TB.link_mode&&(t=e.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp(e.metadata.redirect.universal),this.client.events.emit(`session_authenticate`,{topic:n,params:r.params,id:r.id,verifyContext:l})}catch(e){this.client.logger.error(e);let t=r.params.requester.publicKey,i=await this.client.core.crypto.generateKeyPair(),a=this.getAppLinkIfEnabled(r.params.requester.metadata,o),s={type:1,receiverPublicKey:t,senderPublicKey:i};await this.sendError({id:r.id,topic:n,error:e,encodeOpts:s,rpcOpts:vG.wc_sessionAuthenticate.autoReject,appLink:a})}}),$(this,`addSessionRequestToSessionRequestQueue`,e=>{this.sessionRequestQueue.queue.push(e)}),$(this,`cleanupAfterResponse`,e=>{this.deletePendingSessionRequest(e.response.id,{message:`fulfilled`,code:0}),setTimeout(()=>{this.sessionRequestQueue.state=bG.idle,this.processSessionRequestQueue()},(0,q.toMiliseconds)(this.requestQueueDelay))}),$(this,`cleanupPendingSentRequestsForTopic`,({topic:e,error:t})=>{let n=this.client.core.history.pending;n.length>0&&n.filter(t=>t.topic===e&&t.request.method===`wc_sessionRequest`).forEach(e=>{let n=e.request.id,r=QP(`session_request`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);this.events.emit(QP(`session_request`,e.request.id),{error:t})})}),$(this,`processSessionRequestQueue`,()=>{if(this.sessionRequestQueue.state===bG.active){this.client.logger.info(`session request queue is already active.`);return}let e=this.sessionRequestQueue.queue[0];if(!e){this.client.logger.info(`session request queue is empty.`);return}try{this.sessionRequestQueue.state=bG.active,this.emitSessionRequest(e)}catch(e){this.client.logger.error(e)}}),$(this,`emitSessionRequest`,e=>{this.client.events.emit(`session_request`,e)}),$(this,`onPairingCreated`,e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;let t=this.client.proposal.getAll().find(t=>t.pairingTopic===e.topic);t&&this.onSessionProposeRequest({topic:e.topic,payload:te(`wc_sessionPropose`,RG(LG({},t),{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties,scopedProperties:t.scopedProperties}),t.id)})}),$(this,`isValidConnect`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`connect() params: ${JSON.stringify(e)}`);throw Error(t)}let{pairingTopic:t,requiredNamespaces:n,optionalNamespaces:r,sessionProperties:i,scopedProperties:a,relays:o}=e;if(bz(t)||await this.isValidPairingTopic(t),!Bz(o,!0)){let{message:e}=Q(`MISSING_OR_INVALID`,`connect() relays: ${o}`);throw Error(e)}if(!bz(n)&&yz(n)!==0&&this.validateNamespaces(n,`requiredNamespaces`),!bz(r)&&yz(r)!==0&&this.validateNamespaces(r,`optionalNamespaces`),bz(i)||this.validateSessionProps(i,`sessionProperties`),!bz(a)){this.validateSessionProps(a,`scopedProperties`);let e=Object.keys(n||{}).concat(Object.keys(r||{}));if(!Object.keys(a).every(t=>e.includes(t)))throw Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(a)}, required/optional namespaces: ${JSON.stringify(e)}`)}}),$(this,`validateNamespaces`,(e,t)=>{let n=Lz(e,`connect()`,t);if(n)throw Error(n.message)}),$(this,`isValidApprove`,async e=>{if(!Hz(e))throw Error(Q(`MISSING_OR_INVALID`,`approve() params: ${e}`).message);let{id:t,namespaces:n,relayProtocol:r,sessionProperties:i,scopedProperties:a}=e;this.checkRecentlyDeleted(t),await this.isValidProposalId(t);let o=this.client.proposal.get(t),s=Rz(n,`approve()`);if(s)throw Error(s.message);let c=Xz(o.requiredNamespaces,n,`approve()`);if(c)throw Error(c.message);if(!xz(r,!0)){let{message:e}=Q(`MISSING_OR_INVALID`,`approve() relayProtocol: ${r}`);throw Error(e)}if(bz(i)||this.validateSessionProps(i,`sessionProperties`),!bz(a)){this.validateSessionProps(a,`scopedProperties`);let e=new Set(Object.keys(n));if(!Object.keys(a).every(t=>e.has(t)))throw Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(a)}, approved namespaces: ${Array.from(e).join(`, `)}`)}}),$(this,`isValidReject`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`reject() params: ${e}`);throw Error(t)}let{id:t,reason:n}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!Uz(n)){let{message:e}=Q(`MISSING_OR_INVALID`,`reject() reason: ${JSON.stringify(n)}`);throw Error(e)}}),$(this,`isValidSessionSettleRequest`,e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`onSessionSettleRequest() params: ${e}`);throw Error(t)}let{relay:t,controller:n,namespaces:r,expiry:i}=e;if(!zz(t)){let{message:e}=Q(`MISSING_OR_INVALID`,`onSessionSettleRequest() relay protocol should be a string`);throw Error(e)}let a=kz(n,`onSessionSettleRequest()`);if(a)throw Error(a.message);let o=Rz(r,`onSessionSettleRequest()`);if(o)throw Error(o.message);if(ZP(i)){let{message:e}=Q(`EXPIRED`,`onSessionSettleRequest()`);throw Error(e)}}),$(this,`isValidUpdate`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`update() params: ${e}`);throw Error(t)}let{topic:t,namespaces:n}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);let r=this.client.session.get(t),i=Rz(n,`update()`);if(i)throw Error(i.message);let a=Xz(r.requiredNamespaces,n,`update()`);if(a)throw Error(a.message)}),$(this,`isValidExtend`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`extend() params: ${e}`);throw Error(t)}let{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)}),$(this,`isValidRequest`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`request() params: ${e}`);throw Error(t)}let{topic:t,request:n,chainId:r,expiry:i}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);let{namespaces:a}=this.client.session.get(t);if(!qz(a,r)){let{message:e}=Q(`MISSING_OR_INVALID`,`request() chainId: ${r}`);throw Error(e)}if(!Wz(n)){let{message:e}=Q(`MISSING_OR_INVALID`,`request() ${JSON.stringify(n)}`);throw Error(e)}if(!Jz(a,r,n.method)){let{message:e}=Q(`MISSING_OR_INVALID`,`request() method: ${n.method}`);throw Error(e)}if(i&&!eB(i,yG)){let{message:e}=Q(`MISSING_OR_INVALID`,`request() expiry: ${i}. Expiry must be a number (in seconds) between ${yG.min} and ${yG.max}`);throw Error(e)}}),$(this,`isValidRespond`,async e=>{var t;if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`respond() params: ${e}`);throw Error(t)}let{topic:n,response:r}=e;try{await this.isValidSessionTopic(n)}catch(n){throw(t=e?.response)!=null&&t.id&&this.cleanupAfterResponse(e),n}if(!Gz(r)){let{message:e}=Q(`MISSING_OR_INVALID`,`respond() response: ${JSON.stringify(r)}`);throw Error(e)}}),$(this,`isValidPing`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),$(this,`isValidEmit`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`emit() params: ${e}`);throw Error(t)}let{topic:t,event:n,chainId:r}=e;await this.isValidSessionTopic(t);let{namespaces:i}=this.client.session.get(t);if(!qz(i,r)){let{message:e}=Q(`MISSING_OR_INVALID`,`emit() chainId: ${r}`);throw Error(e)}if(!Kz(n)){let{message:e}=Q(`MISSING_OR_INVALID`,`emit() event: ${JSON.stringify(n)}`);throw Error(e)}if(!Yz(i,r,n.name)){let{message:e}=Q(`MISSING_OR_INVALID`,`emit() event: ${JSON.stringify(n)}`);throw Error(e)}}),$(this,`isValidDisconnect`,async e=>{if(!Hz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),$(this,`isValidAuthenticate`,e=>{let{chains:t,uri:n,domain:r,nonce:i}=e;if(!Array.isArray(t)||t.length===0)throw Error(`chains is required and must be a non-empty array`);if(!xz(n,!1))throw Error(`uri is required parameter`);if(!xz(r,!1))throw Error(`domain is required parameter`);if(!xz(i,!1))throw Error(`nonce is required parameter`);if([...new Set(t.map(e=>TP(e).namespace))].length>1)throw Error(`Multi-namespace requests are not supported. Please request single namespace only.`);let{namespace:a}=TP(t[0]);if(a!==`eip155`)throw Error(`Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.`)}),$(this,`getVerifyContext`,async e=>{let{attestationId:t,hash:n,encryptedId:r,metadata:i,transportType:a}=e,o={verified:{verifyUrl:i.verifyUrl||`https://verify.walletconnect.org`,validation:`UNKNOWN`,origin:i.url||``}};try{if(a===TB.link_mode){let e=this.getAppLinkIfEnabled(i,a);return o.verified.validation=e&&new URL(e).origin===new URL(i.url).origin?`VALID`:`INVALID`,o}let e=await this.client.core.verify.resolve({attestationId:t,hash:n,encryptedId:r,verifyUrl:i.verifyUrl});e&&(o.verified.origin=e.origin,o.verified.isScam=e.isScam,o.verified.validation=e.origin===new URL(i.url).origin?`VALID`:`INVALID`)}catch(e){this.client.logger.warn(e)}return this.client.logger.debug(`Verify context: ${JSON.stringify(o)}`),o}),$(this,`validateSessionProps`,(e,t)=>{Object.values(e).forEach((n,r)=>{if(n==null){let{message:i}=Q(`MISSING_OR_INVALID`,`${t} must contain an existing value for each key. Received: ${n} for key ${Object.keys(e)[r]}`);throw Error(i)}})}),$(this,`getPendingAuthRequest`,e=>{let t=this.client.auth.requests.get(e);return typeof t==`object`?t:void 0}),$(this,`addToRecentlyDeleted`,(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let e=0,t=this.recentlyDeletedLimit/2;for(let n of this.recentlyDeletedMap.keys()){if(e++>=t)break;this.recentlyDeletedMap.delete(n)}}}),$(this,`checkRecentlyDeleted`,e=>{let t=this.recentlyDeletedMap.get(e);if(t){let{message:n}=Q(`MISSING_OR_INVALID`,`Record was recently deleted - ${t}: ${e}`);throw Error(n)}}),$(this,`isLinkModeEnabled`,(e,t)=>!e||t!==TB.link_mode?!1:this.client.metadata?.redirect?.linkMode===!0&&this.client.metadata?.redirect?.universal!==void 0&&this.client.metadata?.redirect?.universal!==``&&e?.redirect?.universal!==void 0&&e?.redirect?.universal!==``&&e?.redirect?.linkMode===!0&&this.client.core.linkModeSupportedApps.includes(e.redirect.universal)&&typeof(global==null?void 0:global.Linking)<`u`),$(this,`getAppLinkIfEnabled`,(e,t)=>this.isLinkModeEnabled(e,t)?e?.redirect?.universal:void 0),$(this,`handleLinkModeMessage`,({url:e})=>{if(!e||!e.includes(`wc_ev`)||!e.includes(`topic`))return;let t=iF(e,`topic`)||``,n=decodeURIComponent(iF(e,`wc_ev`)||``),r=this.client.session.keys.includes(t);r&&this.client.session.update(t,{transportType:TB.link_mode}),this.client.core.dispatchEnvelope({topic:t,message:n,sessionExists:r})}),$(this,`registerLinkModeListeners`,async()=>{var e;if(oF()||kP()&&(e=this.client.metadata.redirect)!=null&&e.linkMode){let e=global==null?void 0:global.Linking;if(typeof e<`u`){e.addEventListener(`url`,this.handleLinkModeMessage,this.client.name);let t=await e.getInitialURL();t&&setTimeout(()=>{this.handleLinkModeMessage({url:t})},50)}}}),$(this,`shouldSetTVF`,(e,t)=>{if(!t||e!==`wc_sessionRequest`)return!1;let{request:n}=t;return Object.keys(xG).includes(n.method)}),$(this,`getTVFParams`,(e,t,n)=>{try{let r=t.request.method,i=this.extractTxHashesFromResult(r,n);return RG(LG({correlationId:e,rpcMethods:[r],chainId:t.chainId},this.isValidContractData(t.request.params)&&{contractAddresses:[t.request.params?.[0]?.to]}),{txHashes:i})}catch(e){this.client.logger.warn(`Error getting TVF params`,e)}return{}}),$(this,`isValidContractData`,e=>{if(!e)return!1;try{let t=e?.data||e?.[0]?.data;if(!t.startsWith(`0x`))return!1;let n=t.slice(2);return/^[0-9a-fA-F]*$/.test(n)?n.length%2==0:!1}catch{}return!1}),$(this,`extractTxHashesFromResult`,(e,t)=>{try{let n=xG[e];if(typeof t==`string`)return[t];let r=t[n.key];if(vz(r))return e===`solana_signAllTransactions`?r.map(e=>oI(e)):r;if(typeof r==`string`)return[r]}catch(e){this.client.logger.warn(`Error extracting tx hashes from result`,e)}return[]})}async processPendingMessageEvents(){try{let e=this.client.session.keys,t=this.client.core.relayer.messages.getWithoutAck(e);for(let[e,n]of Object.entries(t))for(let t of n)try{await this.onProviderMessageEvent({topic:e,message:t,publishedAt:Date.now()})}catch{this.client.logger.warn(`Error processing pending message event for topic: ${e}, message: ${t}`)}}catch(e){this.client.logger.warn(`processPendingMessageEvents failed`,e)}}isInitialized(){if(!this.initialized){let{message:e}=Q(`NOT_INITIALIZED`,this.name);throw Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(SB.message,e=>{this.onProviderMessageEvent(e)})}async onRelayMessage(e){let{topic:t,message:n,attestation:r,transportType:i}=e,{publicKey:a}=this.client.auth.authKeys.keys.includes(kG)?this.client.auth.authKeys.get(kG):{responseTopic:void 0,publicKey:void 0};try{let e=await this.client.core.crypto.decode(t,n,{receiverPublicKey:a,encoding:i===TB.link_mode?ER:TR});p(e)?(this.client.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e,attestation:r,transportType:i,encryptedId:IR(n)})):ue(e)?(await this.client.core.history.resolve(e),await this.onRelayEventResponse({topic:t,payload:e,transportType:i}),this.client.core.history.delete(t,e.id)):await this.onRelayEventUnknownPayload({topic:t,payload:e,transportType:i}),await this.client.core.relayer.messages.ack(t,n)}catch(e){this.client.logger.error(e)}}registerExpirerEvents(){this.client.core.expirer.on(IB.expired,async e=>{let{topic:t,id:n}=YP(e.target);if(n&&this.client.pendingRequest.keys.includes(n))return await this.deletePendingSessionRequest(n,Q(`EXPIRED`),!0);if(n&&this.client.auth.requests.keys.includes(n))return await this.deletePendingAuthRequest(n,Q(`EXPIRED`),!0);t?this.client.session.keys.includes(t)&&(await this.deleteSession({topic:t,expirerHasDeleted:!0}),this.client.events.emit(`session_expire`,{topic:t})):n&&(await this.deleteProposal(n,!0),this.client.events.emit(`proposal_expire`,{id:n}))})}registerPairingEvents(){this.client.core.pairing.events.on(MB.create,e=>this.onPairingCreated(e)),this.client.core.pairing.events.on(MB.delete,e=>{this.addToRecentlyDeleted(e.topic,`pairing`)})}isValidPairingTopic(e){if(!xz(e,!1)){let{message:t}=Q(`MISSING_OR_INVALID`,`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.client.core.pairing.pairings.keys.includes(e)){let{message:t}=Q(`NO_MATCHING_KEY`,`pairing topic doesn't exist: ${e}`);throw Error(t)}if(ZP(this.client.core.pairing.pairings.get(e).expiry)){let{message:t}=Q(`EXPIRED`,`pairing topic: ${e}`);throw Error(t)}}async isValidSessionTopic(e){if(!xz(e,!1)){let{message:t}=Q(`MISSING_OR_INVALID`,`session topic should be a string: ${e}`);throw Error(t)}if(this.checkRecentlyDeleted(e),!this.client.session.keys.includes(e)){let{message:t}=Q(`NO_MATCHING_KEY`,`session topic doesn't exist: ${e}`);throw Error(t)}if(ZP(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});let{message:t}=Q(`EXPIRED`,`session topic: ${e}`);throw Error(t)}if(!this.client.core.crypto.keychain.has(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`session topic does not exist in keychain: ${e}`);throw await this.deleteSession({topic:e}),Error(t)}}async isValidSessionOrPairingTopic(e){if(this.checkRecentlyDeleted(e),this.client.session.keys.includes(e))await this.isValidSessionTopic(e);else if(this.client.core.pairing.pairings.keys.includes(e))this.isValidPairingTopic(e);else if(xz(e,!1)){let{message:t}=Q(`NO_MATCHING_KEY`,`session or pairing topic doesn't exist: ${e}`);throw Error(t)}else{let{message:t}=Q(`MISSING_OR_INVALID`,`session or pairing topic should be a string: ${e}`);throw Error(t)}}async isValidProposalId(e){if(!Vz(e)){let{message:t}=Q(`MISSING_OR_INVALID`,`proposal id should be a number: ${e}`);throw Error(t)}if(!this.client.proposal.keys.includes(e)){let{message:t}=Q(`NO_MATCHING_KEY`,`proposal id doesn't exist: ${e}`);throw Error(t)}if(ZP(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);let{message:t}=Q(`EXPIRED`,`proposal id: ${e}`);throw Error(t)}}},BG=class extends EW{constructor(e,t){super(e,t,pG,uG),this.core=e,this.logger=t}},VG=class extends EW{constructor(e,t){super(e,t,hG,uG),this.core=e,this.logger=t}},HG=class extends EW{constructor(e,t){super(e,t,SG,uG,e=>e.id),this.core=e,this.logger=t}},UG=class extends EW{constructor(e,t){super(e,t,TG,OG,()=>kG),this.core=e,this.logger=t}},WG=class extends EW{constructor(e,t){super(e,t,EG,OG),this.core=e,this.logger=t}},GG=class extends EW{constructor(e,t){super(e,t,DG,OG,e=>e.id),this.core=e,this.logger=t}},KG=Object.defineProperty,qG=(e,t,n)=>t in e?KG(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,JG=(e,t,n)=>qG(e,typeof t==`symbol`?t:t+``,n),YG=class{constructor(e,t){this.core=e,this.logger=t,JG(this,`authKeys`),JG(this,`pairingTopics`),JG(this,`requests`),this.authKeys=new UG(this.core,this.logger),this.pairingTopics=new WG(this.core,this.logger),this.requests=new GG(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}},XG=Object.defineProperty,ZG=(e,t,n)=>t in e?XG(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,QG=(e,t,n)=>ZG(e,typeof t==`symbol`?t:t+``,n),$G=class e extends er{constructor(e){super(e),QG(this,`protocol`,`wc`),QG(this,`version`,2),QG(this,`name`,dG.name),QG(this,`metadata`),QG(this,`core`),QG(this,`logger`),QG(this,`events`,new jt.EventEmitter),QG(this,`engine`),QG(this,`session`),QG(this,`proposal`),QG(this,`pendingRequest`),QG(this,`auth`),QG(this,`signConfig`),QG(this,`on`,(e,t)=>this.events.on(e,t)),QG(this,`once`,(e,t)=>this.events.once(e,t)),QG(this,`off`,(e,t)=>this.events.off(e,t)),QG(this,`removeListener`,(e,t)=>this.events.removeListener(e,t)),QG(this,`removeAllListeners`,e=>this.events.removeAllListeners(e)),QG(this,`connect`,async e=>{try{return await this.engine.connect(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`pair`,async e=>{try{return await this.engine.pair(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`approve`,async e=>{try{return await this.engine.approve(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`reject`,async e=>{try{return await this.engine.reject(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`update`,async e=>{try{return await this.engine.update(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`extend`,async e=>{try{return await this.engine.extend(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`request`,async e=>{try{return await this.engine.request(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`respond`,async e=>{try{return await this.engine.respond(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`ping`,async e=>{try{return await this.engine.ping(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`emit`,async e=>{try{return await this.engine.emit(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`disconnect`,async e=>{try{return await this.engine.disconnect(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`find`,e=>{try{return this.engine.find(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`getPendingSessionRequests`,()=>{try{return this.engine.getPendingSessionRequests()}catch(e){throw this.logger.error(e.message),e}}),QG(this,`authenticate`,async(e,t)=>{try{return await this.engine.authenticate(e,t)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`formatAuthMessage`,e=>{try{return this.engine.formatAuthMessage(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`approveSessionAuthenticate`,async e=>{try{return await this.engine.approveSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),QG(this,`rejectSessionAuthenticate`,async e=>{try{return await this.engine.rejectSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),this.name=e?.name||dG.name,this.metadata=e?.metadata||IP(),this.signConfig=e?.signConfig;let t=typeof e?.logger<`u`&&typeof e?.logger!=`string`?e.logger:(0,v.default)(x({level:e?.logger||dG.logger}));this.core=e?.core||new cG(e),this.logger=g(t,this.name),this.session=new VG(this.core,this.logger),this.proposal=new BG(this.core,this.logger),this.pendingRequest=new HG(this.core,this.logger),this.engine=new zG(this),this.auth=new YG(this.core,this.logger)}static async init(t){let n=new e(t);return await n.initialize(),n}get context(){return D(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()},(0,q.toMiliseconds)(q.ONE_SECOND))}catch(e){throw this.logger.info(`SignClient Initialization Failure`),this.logger.error(e.message),e}}},eK=`error`,tK=`wss://relay.walletconnect.org`,nK=`wc@2:universal_provider:`,rK=`https://rpc.walletconnect.org/v1/`,iK=`generic`,aK=`${rK}bundler`,oK={DEFAULT_CHAIN_CHANGED:`default_chain_changed`};function sK(){}function cK(e){return e==null||typeof e!=`object`&&typeof e!=`function`}function lK(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function uK(e){if(cK(e))return e;if(Array.isArray(e)||lK(e)||e instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer)return e.slice(0);let t=Object.getPrototypeOf(e),n=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new n(e);if(e instanceof RegExp){let t=new n(e);return t.lastIndex=e.lastIndex,t}if(e instanceof DataView)return new n(e.buffer.slice(0));if(e instanceof Error){let t=new n(e.message);return t.stack=e.stack,t.name=e.name,t.cause=e.cause,t}return typeof File<`u`&&e instanceof File?new n([e],e.name,{type:e.type,lastModified:e.lastModified}):typeof e==`object`?Object.assign(Object.create(t),e):e}function dK(e){return typeof e==`object`&&!!e}function fK(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function pK(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var mK=`[object RegExp]`,hK=`[object String]`,gK=`[object Number]`,_K=`[object Boolean]`,vK=`[object Arguments]`,yK=`[object Symbol]`,bK=`[object Date]`,xK=`[object Map]`,SK=`[object Set]`,CK=`[object Array]`,wK=`[object ArrayBuffer]`,TK=`[object Object]`,EK=`[object DataView]`,DK=`[object Uint8Array]`,OK=`[object Uint8ClampedArray]`,kK=`[object Uint16Array]`,AK=`[object Uint32Array]`,jK=`[object Int8Array]`,MK=`[object Int16Array]`,NK=`[object Int32Array]`,PK=`[object Float32Array]`,FK=`[object Float64Array]`;function IK(e,t){return LK(e,void 0,e,new Map,t)}function LK(e,t,n,r=new Map,i=void 0){let a=i?.(e,t,n,r);if(a!=null)return a;if(cK(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=LK(e[a],a,n,r,i);return Object.hasOwn(e,`index`)&&(t.index=e.index),Object.hasOwn(e,`input`)&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){let t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){let t=new Map;r.set(e,t);for(let[a,o]of e)t.set(a,LK(o,a,n,r,i));return t}if(e instanceof Set){let t=new Set;r.set(e,t);for(let a of e)t.add(LK(a,void 0,n,r,i));return t}if(typeof Buffer<`u`&&Buffer.isBuffer(e))return e.subarray();if(lK(e)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=LK(e[a],a,n,r,i);return t}if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){let t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return r.set(e,t),RK(t,e,n,r,i),t}if(typeof File<`u`&&e instanceof File){let t=new File([e],e.name,{type:e.type});return r.set(e,t),RK(t,e,n,r,i),t}if(e instanceof Blob){let t=new Blob([e],{type:e.type});return r.set(e,t),RK(t,e,n,r,i),t}if(e instanceof Error){let t=new e.constructor;return r.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,RK(t,e,n,r,i),t}if(typeof e==`object`&&zK(e)){let t=Object.create(Object.getPrototypeOf(e));return r.set(e,t),RK(t,e,n,r,i),t}return e}function RK(e,t,n=e,r,i){let a=[...Object.keys(t),...fK(t)];for(let o=0;o<a.length;o++){let s=a[o],c=Object.getOwnPropertyDescriptor(e,s);(c==null||c.writable)&&(e[s]=LK(t[s],s,n,r,i))}}function zK(e){switch(pK(e)){case vK:case CK:case wK:case EK:case _K:case bK:case PK:case FK:case jK:case MK:case NK:case xK:case gK:case TK:case mK:case SK:case hK:case yK:case DK:case OK:case kK:case AK:return!0;default:return!1}}function BK(e,t){return IK(e,(n,r,i,a)=>{let o=t?.(n,r,i,a);if(o!=null)return o;if(typeof e==`object`)switch(Object.prototype.toString.call(e)){case gK:case hK:case _K:{let t=new e.constructor(e?.valueOf());return RK(t,e),t}case vK:{let t={};return RK(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}})}function VK(e){return BK(e)}function HK(e){return typeof e==`object`&&!!e&&pK(e)===`[object Arguments]`}function UK(e){return lK(e)}function WK(e){if(typeof e!=`object`||!e)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!==`[object Object]`){let t=e[Symbol.toStringTag];return t==null||!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable?!1:e.toString()===`[object ${t}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function GK(e,...t){let n=t.slice(0,-1),r=t[t.length-1],i=e;for(let e=0;e<n.length;e++){let t=n[e];i=KK(i,t,r,new Map)}return i}function KK(e,t,n,r){if(cK(e)&&(e=Object(e)),typeof t!=`object`||!t)return e;if(r.has(t))return uK(r.get(t));if(r.set(t,e),Array.isArray(t)){t=t.slice();for(let e=0;e<t.length;e++)t[e]=t[e]??void 0}let i=[...Object.keys(t),...fK(t)];for(let a=0;a<i.length;a++){let o=i[a],s=t[o],c=e[o];if(HK(s)&&(s={...s}),HK(c)&&(c={...c}),typeof Buffer<`u`&&Buffer.isBuffer(s)&&(s=VK(s)),Array.isArray(s))if(typeof c==`object`&&c){let e=[],t=Reflect.ownKeys(c);for(let n=0;n<t.length;n++){let r=t[n];e[r]=c[r]}c=e}else c=[];let l=n(c,s,o,e,t,r);l==null?Array.isArray(s)||dK(c)&&dK(s)?e[o]=KK(c,s,n,r):c==null&&WK(s)?e[o]=KK({},s,n,r):c==null&&UK(s)?e[o]=VK(s):(c===void 0||s!==void 0)&&(e[o]=s):e[o]=l}return e}function qK(e,...t){return GK(e,...t,sK)}var JK=Object.defineProperty,YK=Object.defineProperties,XK=Object.getOwnPropertyDescriptors,ZK=Object.getOwnPropertySymbols,QK=Object.prototype.hasOwnProperty,$K=Object.prototype.propertyIsEnumerable,eq=(e,t,n)=>t in e?JK(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tq=(e,t)=>{for(var n in t||={})QK.call(t,n)&&eq(e,n,t[n]);if(ZK)for(var n of ZK(t))$K.call(t,n)&&eq(e,n,t[n]);return e},nq=(e,t)=>YK(e,XK(t));function rq(e,t,n){let r=TP(e);return t.rpcMap?.[r.reference]||`${rK}?chainId=${r.namespace}:${r.reference}&projectId=${n}`}function iq(e){return e.includes(`:`)?e.split(`:`)[1]:e}function aq(e){return e.map(e=>`${e.split(`:`)[0]}:${e.split(`:`)[1]}`)}function oq(e,t){let n=Object.keys(t.namespaces).filter(t=>t.includes(e));if(!n.length)return[];let r=[];return n.forEach(e=>{let n=t.namespaces[e].accounts;r.push(...n)}),r}function sq(e={},t={}){return qK(cq(e),cq(t))}function cq(e){let t={};if(!yz(e))return t;for(let[n,r]of Object.entries(e)){let e=dz(n)?[n]:r.chains,i=r.methods||[],a=r.events||[],o=r.rpcMap||{},s=fz(n);t[s]=nq(tq(tq({},t[s]),r),{chains:$P(e,t[s]?.chains),methods:$P(i,t[s]?.methods),events:$P(a,t[s]?.events),rpcMap:tq(tq({},o),t[s]?.rpcMap)})}return t}function lq(e){return e.includes(`:`)?e.split(`:`)[2]:e}function uq(e){let t={};for(let[n,r]of Object.entries(e)){let e=r.methods||[],i=r.events||[],a=r.accounts||[];t[n]={chains:dz(n)?[n]:r.chains?r.chains:aq(r.accounts),methods:e,events:i,accounts:a}}return t}function dq(e){return typeof e==`number`?e:e.includes(`0x`)?parseInt(e,16):(e=e.includes(`:`)?e.split(`:`)[1]:e,isNaN(Number(e))?e:Number(e))}var fq={},pq=e=>fq[e],mq=(e,t)=>{fq[e]=t},hq=Object.defineProperty,gq=(e,t,n)=>t in e?hq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_q=(e,t,n)=>gq(e,typeof t==`symbol`?t:t+``,n),vq=class{constructor(e){_q(this,`name`,`polkadot`),_q(this,`client`),_q(this,`httpProviders`),_q(this,`events`),_q(this,`namespace`),_q(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=iq(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}},yq=Object.defineProperty,bq=Object.defineProperties,xq=Object.getOwnPropertyDescriptors,Sq=Object.getOwnPropertySymbols,Cq=Object.prototype.hasOwnProperty,wq=Object.prototype.propertyIsEnumerable,Tq=(e,t,n)=>t in e?yq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Eq=(e,t)=>{for(var n in t||={})Cq.call(t,n)&&Tq(e,n,t[n]);if(Sq)for(var n of Sq(t))wq.call(t,n)&&Tq(e,n,t[n]);return e},Dq=(e,t)=>bq(e,xq(t)),Oq=(e,t,n)=>Tq(e,typeof t==`symbol`?t:t+``,n),kq=class{constructor(e){Oq(this,`name`,`eip155`),Oq(this,`client`),Oq(this,`chainId`),Oq(this,`namespace`),Oq(this,`httpProviders`),Oq(this,`events`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(e){switch(e.request.method){case`eth_requestAccounts`:return this.getAccounts();case`eth_accounts`:return this.getAccounts();case`wallet_switchEthereumChain`:return await this.handleSwitchChain(e);case`eth_chainId`:return parseInt(this.getDefaultChain());case`wallet_getCapabilities`:return await this.getCapabilities(e);case`wallet_getCallsStatus`:return await this.getCallStatus(e)}return this.namespace.methods.includes(e.request.method)?await this.client.request(e):this.getHttpProvider().request(e.request)}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(parseInt(e),t),this.chainId=parseInt(e),this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}createHttpProvider(e,t){let n=t||rq(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=parseInt(iq(t));e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}getHttpProvider(){let e=this.chainId,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}async handleSwitchChain(e){let t=e.request.params?e.request.params[0]?.chainId:`0x0`;t=t.startsWith(`0x`)?t:`0x${t}`;let n=parseInt(t,16);if(this.isChainApproved(n))this.setDefaultChain(`${n}`);else if(this.namespace.methods.includes(`wallet_switchEthereumChain`))await this.client.request({topic:e.topic,request:{method:e.request.method,params:[{chainId:t}]},chainId:this.namespace.chains?.[0]}),this.setDefaultChain(`${n}`);else throw Error(`Failed to switch to chain 'eip155:${n}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(e){return this.namespace.chains.includes(`${this.name}:${e}`)}async getCapabilities(e){let t=e.request?.params?.[0];if(!t)throw Error("Missing address parameter in `wallet_getCapabilities` request");let n=this.client.session.get(e.topic),r=n?.sessionProperties?.capabilities||{};if(r!=null&&r[t])return r?.[t];let i=await this.client.request(e);try{await this.client.session.update(e.topic,{sessionProperties:Dq(Eq({},n.sessionProperties||{}),{capabilities:Dq(Eq({},r||{}),{[t]:i})})})}catch(e){console.warn(`Failed to update session with capabilities`,e)}return i}async getCallStatus(e){let t=this.client.session.get(e.topic),n=t.sessionProperties?.bundler_name;if(n){let t=this.getBundlerUrl(e.chainId,n);try{return await this.getUserOperationReceipt(t,e)}catch(e){console.warn(`Failed to fetch call status from bundler`,e,t)}}let r=t.sessionProperties?.bundler_url;if(r)try{return await this.getUserOperationReceipt(r,e)}catch(e){console.warn(`Failed to fetch call status from custom bundler`,e,r)}if(this.namespace.methods.includes(e.request.method))return await this.client.request(e);throw Error(`Fetching call status not approved by the wallet.`)}async getUserOperationReceipt(e,t){let n=new URL(e),r=await fetch(n,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(te(`eth_getUserOperationReceipt`,[t.request.params?.[0]]))});if(!r.ok)throw Error(`Failed to fetch user operation receipt - ${r.status}`);return await r.json()}getBundlerUrl(e,t){return`${aK}?projectId=${this.client.core.projectId}&chainId=${e}&bundler=${t}`}},Aq=Object.defineProperty,jq=(e,t,n)=>t in e?Aq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Mq=(e,t,n)=>jq(e,typeof t==`symbol`?t:t+``,n),Nq=class{constructor(e){Mq(this,`name`,`solana`),Mq(this,`client`),Mq(this,`httpProviders`),Mq(this,`events`),Mq(this,`namespace`),Mq(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=iq(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}},Pq=Object.defineProperty,Fq=(e,t,n)=>t in e?Pq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Iq=(e,t,n)=>Fq(e,typeof t==`symbol`?t:t+``,n),Lq=class{constructor(e){Iq(this,`name`,`cosmos`),Iq(this,`client`),Iq(this,`httpProviders`),Iq(this,`events`),Iq(this,`namespace`),Iq(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=iq(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}},Rq=Object.defineProperty,zq=(e,t,n)=>t in e?Rq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Bq=(e,t,n)=>zq(e,typeof t==`symbol`?t:t+``,n),Vq=class{constructor(e){Bq(this,`name`,`algorand`),Bq(this,`client`),Bq(this,`httpProviders`),Bq(this,`events`),Bq(this,`namespace`),Bq(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(!this.httpProviders[e]){let n=t||rq(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{e[t]=this.createHttpProvider(t,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace,this.client.core.projectId);return typeof n>`u`?void 0:new L(new fe(n,pq(`disableProviderPing`)))}},Hq=Object.defineProperty,Uq=(e,t,n)=>t in e?Hq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wq=(e,t,n)=>Uq(e,typeof t==`symbol`?t:t+``,n),Gq=class{constructor(e){Wq(this,`name`,`cip34`),Wq(this,`client`),Wq(this,`httpProviders`),Wq(this,`events`),Wq(this,`namespace`),Wq(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=this.getCardanoRPCUrl(t),r=iq(t);e[r]=this.createHttpProvider(r,n)}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}getCardanoRPCUrl(e){let t=this.namespace.rpcMap;if(t)return t[e]}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||this.getCardanoRPCUrl(e);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}},Kq=Object.defineProperty,qq=(e,t,n)=>t in e?Kq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Jq=(e,t,n)=>qq(e,typeof t==`symbol`?t:t+``,n),Yq=class{constructor(e){Jq(this,`name`,`elrond`),Jq(this,`client`),Jq(this,`httpProviders`),Jq(this,`events`),Jq(this,`namespace`),Jq(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=iq(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}},Xq=Object.defineProperty,Zq=(e,t,n)=>t in e?Xq(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qq=(e,t,n)=>Zq(e,typeof t==`symbol`?t:t+``,n),$q=class{constructor(e){Qq(this,`name`,`multiversx`),Qq(this,`client`),Qq(this,`httpProviders`),Qq(this,`events`),Qq(this,`namespace`),Qq(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=iq(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}},eJ=Object.defineProperty,tJ=(e,t,n)=>t in e?eJ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,nJ=(e,t,n)=>tJ(e,typeof t==`symbol`?t:t+``,n),rJ=class{constructor(e){nJ(this,`name`,`near`),nJ(this,`client`),nJ(this,`httpProviders`),nJ(this,`events`),nJ(this,`namespace`),nJ(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(this.chainId=e,!this.httpProviders[e]){let n=t||rq(`${this.name}:${e}`,this.namespace);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{e[t]=this.createHttpProvider(t,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace);return typeof n>`u`?void 0:new L(new fe(n,pq(`disableProviderPing`)))}},iJ=Object.defineProperty,aJ=(e,t,n)=>t in e?iJ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oJ=(e,t,n)=>aJ(e,typeof t==`symbol`?t:t+``,n),sJ=class{constructor(e){oJ(this,`name`,`tezos`),oJ(this,`client`),oJ(this,`httpProviders`),oJ(this,`events`),oJ(this,`namespace`),oJ(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(this.chainId=e,!this.httpProviders[e]){let n=t||rq(`${this.name}:${e}`,this.namespace);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{e[t]=this.createHttpProvider(t)}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace);return typeof n>`u`?void 0:new L(new fe(n))}},cJ=Object.defineProperty,lJ=(e,t,n)=>t in e?cJ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,uJ=(e,t,n)=>lJ(e,typeof t==`symbol`?t:t+``,n),dJ=class{constructor(e){uJ(this,`name`,iK),uJ(this,`client`),uJ(this,`httpProviders`),uJ(this,`events`),uJ(this,`namespace`),uJ(this,`chainId`),this.namespace=e.namespace,this.events=pq(`events`),this.client=pq(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace.chains=[...new Set((this.namespace.chains||[]).concat(e.chains||[]))],this.namespace.accounts=[...new Set((this.namespace.accounts||[]).concat(e.accounts||[]))],this.namespace.methods=[...new Set((this.namespace.methods||[]).concat(e.methods||[]))],this.namespace.events=[...new Set((this.namespace.events||[]).concat(e.events||[]))],this.httpProviders=this.createHttpProviders()}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider(e.chainId).request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(oK.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){var e;let t={};return(e=this.namespace?.accounts)==null||e.forEach(e=>{let n=TP(e);t[`${n.namespace}:${n.reference}`]=this.createHttpProvider(e)}),t}getHttpProvider(e){let t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||rq(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new L(new fe(n,pq(`disableProviderPing`)))}},fJ=Object.defineProperty,pJ=Object.defineProperties,mJ=Object.getOwnPropertyDescriptors,hJ=Object.getOwnPropertySymbols,gJ=Object.prototype.hasOwnProperty,_J=Object.prototype.propertyIsEnumerable,vJ=(e,t,n)=>t in e?fJ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,yJ=(e,t)=>{for(var n in t||={})gJ.call(t,n)&&vJ(e,n,t[n]);if(hJ)for(var n of hJ(t))_J.call(t,n)&&vJ(e,n,t[n]);return e},bJ=(e,t)=>pJ(e,mJ(t)),xJ=(e,t,n)=>vJ(e,typeof t==`symbol`?t:t+``,n),SJ=class e{constructor(e){xJ(this,`client`),xJ(this,`namespaces`),xJ(this,`optionalNamespaces`),xJ(this,`sessionProperties`),xJ(this,`scopedProperties`),xJ(this,`events`,new jt.default),xJ(this,`rpcProviders`,{}),xJ(this,`session`),xJ(this,`providerOpts`),xJ(this,`logger`),xJ(this,`uri`),xJ(this,`disableProviderPing`,!1),this.providerOpts=e,this.logger=typeof e?.logger<`u`&&typeof e?.logger!=`string`?e.logger:(0,v.default)(x({level:e?.logger||eK})),this.disableProviderPing=e?.disableProviderPing||!1}static async init(t){let n=new e(t);return await n.initialize(),n}async request(e,t,n){let[r,i]=this.validateChain(t);if(!this.session)throw Error(`Please call connect() before request()`);return await this.getProvider(r).request({request:yJ({},e),chainId:`${r}:${i}`,topic:this.session.topic,expiry:n})}sendAsync(e,t,n,r){let i=new Date().getTime();this.request(e,n,r).then(e=>t(null,d(i,e))).catch(e=>t(e,void 0))}async enable(){if(!this.client)throw 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(){if(!this.session)throw Error(`Please call connect() before enable()`);await this.client.disconnect({topic:this.session?.topic,reason:_z(`USER_DISCONNECTED`)}),await this.cleanup()}async connect(e){if(!this.client)throw Error(`Sign Client not initialized`);if(this.setNamespaces(e),await this.cleanupPendingPairings(),!e.skipPairing)return await this.pair(e.pairingTopic)}async authenticate(e,t){if(!this.client)throw Error(`Sign Client not initialized`);this.setNamespaces(e),await this.cleanupPendingPairings();let{uri:n,response:r}=await this.client.authenticate(e,t);n&&(this.uri=n,this.events.emit(`display_uri`,n));let i=await r();if(this.session=i.session,this.session){let e=uq(this.session.namespaces);this.namespaces=sq(this.namespaces,e),await this.persist(`namespaces`,this.namespaces),this.onConnect()}return i}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}removeListener(e,t){this.events.removeListener(e,t)}off(e,t){this.events.off(e,t)}get isWalletConnect(){return!0}async pair(e){let{uri:t,approval:n}=await this.client.connect({pairingTopic:e,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties});t&&(this.uri=t,this.events.emit(`display_uri`,t));let r=await n();this.session=r;let i=uq(r.namespaces);return this.namespaces=sq(this.namespaces,i),await this.persist(`namespaces`,this.namespaces),await this.persist(`optionalNamespaces`,this.optionalNamespaces),this.onConnect(),this.session}setDefaultChain(e,t){try{if(!this.session)return;let[n,r]=this.validateChain(e),i=this.getProvider(n);i.name===iK?i.setDefaultChain(`${n}:${r}`,t):i.setDefaultChain(r,t)}catch(e){if(!/Please call connect/.test(e.message))throw e}}async cleanupPendingPairings(e={}){this.logger.info(`Cleaning up inactive pairings...`);let t=this.client.pairing.getAll();if(vz(t)){for(let n of t)e.deletePairings?this.client.core.expirer.set(n.topic,0):await this.client.core.relayer.subscriber.unsubscribe(n.topic);this.logger.info(`Inactive pairings cleared: ${t.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(){if(this.client=this.providerOpts.client||await $G.init({core:this.providerOpts.core,logger:this.providerOpts.logger||eK,relayUrl:this.providerOpts.relayUrl||tK,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(e){throw this.logger.error(`Failed to get session`,e),Error(`The provided session: ${this.providerOpts?.session?.topic} doesn't exist in the Sign client`)}else{let e=this.client.session.getAll();this.session=e[0]}this.logger.trace(`SignClient Initialized`)}createProviders(){if(!this.client)throw Error(`Sign Client not initialized`);if(!this.session)throw Error(`Session not initialized. Please call connect() before enable()`);let e=[...new Set(Object.keys(this.session.namespaces).map(e=>fz(e)))];mq(`client`,this.client),mq(`events`,this.events),mq(`disableProviderPing`,this.disableProviderPing),e.forEach(e=>{if(!this.session)return;let t=oq(e,this.session),n=aq(t),r=bJ(yJ({},sq(this.namespaces,this.optionalNamespaces)[e]),{accounts:t,chains:n});switch(e){case`eip155`:this.rpcProviders[e]=new kq({namespace:r});break;case`algorand`:this.rpcProviders[e]=new Vq({namespace:r});break;case`solana`:this.rpcProviders[e]=new Nq({namespace:r});break;case`cosmos`:this.rpcProviders[e]=new Lq({namespace:r});break;case`polkadot`:this.rpcProviders[e]=new vq({namespace:r});break;case`cip34`:this.rpcProviders[e]=new Gq({namespace:r});break;case`elrond`:this.rpcProviders[e]=new Yq({namespace:r});break;case`multiversx`:this.rpcProviders[e]=new $q({namespace:r});break;case`near`:this.rpcProviders[e]=new rJ({namespace:r});break;case`tezos`:this.rpcProviders[e]=new sJ({namespace:r});break;default:this.rpcProviders[iK]?this.rpcProviders[iK].updateNamespace(r):this.rpcProviders[iK]=new dJ({namespace:r})}})}registerEventListeners(){if(typeof this.client>`u`)throw Error(`Sign Client is not initialized`);this.client.on(`session_ping`,e=>{let{topic:t}=e;t===this.session?.topic&&this.events.emit(`session_ping`,e)}),this.client.on(`session_event`,e=>{let{params:t,topic:n}=e;if(n!==this.session?.topic)return;let{event:r}=t;if(r.name===`accountsChanged`){let e=r.data;e&&vz(e)&&this.events.emit(`accountsChanged`,e.map(lq))}else if(r.name===`chainChanged`){let e=t.chainId,n=t.event.data,r=fz(e),i=dq(e)===dq(n)?e:`${r}:${dq(n)}`;this.onChainChanged(i)}else this.events.emit(r.name,r.data);this.events.emit(`session_event`,e)}),this.client.on(`session_update`,({topic:e,params:t})=>{if(e!==this.session?.topic)return;let{namespaces:n}=t,r=this.client?.session.get(e);this.session=bJ(yJ({},r),{namespaces:n}),this.onSessionUpdate(),this.events.emit(`session_update`,{topic:e,params:t})}),this.client.on(`session_delete`,async e=>{e.topic===this.session?.topic&&(await this.cleanup(),this.events.emit(`session_delete`,e),this.events.emit(`disconnect`,bJ(yJ({},_z(`USER_DISCONNECTED`)),{data:e.topic})))}),this.on(oK.DEFAULT_CHAIN_CHANGED,e=>{this.onChainChanged(e,!0)})}getProvider(e){return this.rpcProviders[e]||this.rpcProviders[iK]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(e=>{this.getProvider(e).updateNamespace(this.session?.namespaces[e])})}setNamespaces(e){let{namespaces:t,optionalNamespaces:n,sessionProperties:r,scopedProperties:i}=e;t&&Object.keys(t).length&&(this.namespaces=t),n&&Object.keys(n).length&&(this.optionalNamespaces=n),this.sessionProperties=r,this.scopedProperties=i}validateChain(e){let[t,n]=e?.split(`:`)||[``,``];if(!this.namespaces||!Object.keys(this.namespaces).length)return[t,n];if(t&&!Object.keys(this.namespaces||{}).map(e=>fz(e)).includes(t))throw Error(`Namespace '${t}' is not configured. Please call connect() first with namespace config.`);if(t&&n)return[t,n];let r=fz(Object.keys(this.namespaces)[0]);return[r,this.rpcProviders[r].getDefaultChain()]}async requestAccounts(){let[e]=this.validateChain();return await this.getProvider(e).requestAccounts()}async onChainChanged(e,t=!1){if(!this.namespaces)return;let[n,r]=this.validateChain(e);r&&(t||this.getProvider(n).setDefaultChain(r),this.namespaces[n]?this.namespaces[n].defaultChain=r:this.namespaces[`${n}:${r}`]?this.namespaces[`${n}:${r}`].defaultChain=r:this.namespaces[`${n}:${r}`]={defaultChain:r},this.events.emit(`chainChanged`,r),await this.persist(`namespaces`,this.namespaces))}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(e,t){let n=this.session?.topic||``;await this.client.core.storage.setItem(`${nK}/${e}${n}`,t)}async getFromStore(e){let t=this.session?.topic||``;return await this.client.core.storage.getItem(`${nK}/${e}${t}`)}async deleteFromStore(e){let t=this.session?.topic||``;await this.client.core.storage.removeItem(`${nK}/${e}${t}`)}async cleanupStorage(){try{if(this.client?.session.length>0)return;let e=await this.client.core.storage.getKeys();for(let t of e)t.startsWith(nK)&&await this.client.core.storage.removeItem(t)}catch(e){this.logger.warn(`Failed to cleanup storage`,e)}}},CJ={ERROR_CODE_UNRECOGNIZED_CHAIN_ID:4902,ERROR_CODE_DEFAULT:5e3,ERROR_INVALID_CHAIN_ID:32603};function wJ(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}var TJ=wJ({id:`5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`,name:`Solana`,network:`solana-mainnet`,nativeCurrency:{name:`Solana`,symbol:`SOL`,decimals:9},rpcUrls:{default:{http:[`https://rpc.walletconnect.org/v1`]}},blockExplorers:{default:{name:`Solscan`,url:`https://solscan.io`}},testnet:!1,chainNamespace:`solana`,caipNetworkId:`solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`,deprecatedCaipNetworkId:`solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ`}),EJ=wJ({id:`EtWTRABZaYq6iMfeYKouRu166VU2xqa1`,name:`Solana Devnet`,network:`solana-devnet`,nativeCurrency:{name:`Solana`,symbol:`SOL`,decimals:9},rpcUrls:{default:{http:[`https://rpc.walletconnect.org/v1`]}},blockExplorers:{default:{name:`Solscan`,url:`https://solscan.io`}},testnet:!0,chainNamespace:`solana`,caipNetworkId:`solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1`,deprecatedCaipNetworkId:`solana:8E9rvCKLFQia2Y35HXjjpWzj8weVo44K`}),DJ=wJ({id:`4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z`,name:`Solana Testnet`,network:`solana-testnet`,nativeCurrency:{name:`Solana`,symbol:`SOL`,decimals:9},rpcUrls:{default:{http:[`https://rpc.walletconnect.org/v1`]}},blockExplorers:{default:{name:`Solscan`,url:`https://solscan.io`}},testnet:!0,chainNamespace:`solana`,caipNetworkId:`solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z`});wJ({id:`000000000019d6689c085ae165831e93`,caipNetworkId:`bip122:000000000019d6689c085ae165831e93`,chainNamespace:`bip122`,name:`Bitcoin`,nativeCurrency:{name:`Bitcoin`,symbol:`BTC`,decimals:8},rpcUrls:{default:{http:[`https://rpc.walletconnect.org/v1`]}}}),wJ({id:`000000000933ea01ad0ee984209779ba`,caipNetworkId:`bip122:000000000933ea01ad0ee984209779ba`,chainNamespace:`bip122`,name:`Bitcoin Testnet`,nativeCurrency:{name:`Bitcoin`,symbol:`BTC`,decimals:8},rpcUrls:{default:{http:[`https://rpc.walletconnect.org/v1`]}},testnet:!0});var OJ={solana:[`solana_signMessage`,`solana_signTransaction`,`solana_requestAccounts`,`solana_getAccounts`,`solana_signAllTransactions`,`solana_signAndSendTransaction`],eip155:[`eth_accounts`,`eth_requestAccounts`,`eth_sendRawTransaction`,`eth_sign`,`eth_signTransaction`,`eth_signTypedData`,`eth_signTypedData_v3`,`eth_signTypedData_v4`,`eth_sendTransaction`,`personal_sign`,`wallet_switchEthereumChain`,`wallet_addEthereumChain`,`wallet_getPermissions`,`wallet_requestPermissions`,`wallet_registerOnboarding`,`wallet_watchAsset`,`wallet_scanQRCode`,`wallet_getCallsStatus`,`wallet_showCallsStatus`,`wallet_sendCalls`,`wallet_getCapabilities`,`wallet_grantPermissions`,`wallet_revokePermissions`,`wallet_getAssets`],bip122:[`sendTransfer`,`signMessage`,`signPsbt`,`getAccountAddresses`]},kJ={getMethodsByChainNamespace(e){return OJ[e]||[]},createDefaultNamespace(e){return{methods:this.getMethodsByChainNamespace(e),events:[`accountsChanged`,`chainChanged`],chains:[],rpcMap:{}}},applyNamespaceOverrides(e,t){if(!t)return{...e};let n={...e},r=new Set;if(t.methods&&Object.keys(t.methods).forEach(e=>r.add(e)),t.chains&&Object.keys(t.chains).forEach(e=>r.add(e)),t.events&&Object.keys(t.events).forEach(e=>r.add(e)),t.rpcMap&&Object.keys(t.rpcMap).forEach(e=>{let[t]=e.split(`:`);t&&r.add(t)}),r.forEach(e=>{n[e]||(n[e]=this.createDefaultNamespace(e))}),t.methods&&Object.entries(t.methods).forEach(([e,t])=>{n[e]&&(n[e].methods=t)}),t.chains&&Object.entries(t.chains).forEach(([e,t])=>{n[e]&&(n[e].chains=t)}),t.events&&Object.entries(t.events).forEach(([e,t])=>{n[e]&&(n[e].events=t)}),t.rpcMap){let e=new Set;Object.entries(t.rpcMap).forEach(([t,r])=>{let[i,a]=t.split(`:`);!i||!a||!n[i]||(n[i].rpcMap||(n[i].rpcMap={}),e.has(i)||(n[i].rpcMap={},e.add(i)),n[i].rpcMap[a]=r)})}return n},createNamespaces(e,t){let n=e.reduce((e,t)=>{let{id:n,chainNamespace:r,rpcUrls:i}=t,a=i.default.http[0];e[r]||(e[r]=this.createDefaultNamespace(r));let o=`${r}:${n}`,s=e[r];switch(s.chains.push(o),o){case TJ.caipNetworkId:s.chains.push(TJ.deprecatedCaipNetworkId);break;case EJ.caipNetworkId:s.chains.push(EJ.deprecatedCaipNetworkId);break;default:}return s?.rpcMap&&a&&(s.rpcMap[n]=a),e},{});return this.applyNamespaceOverrides(n,t)},resolveReownName:async e=>{let t=await cf.resolveName(e);return(Object.values(t?.addresses)||[])[0]?.address||!1},getChainsFromNamespaces(e={}){return Object.values(e).flatMap(e=>{let t=e.chains||[],n=e.accounts.map(e=>{let[t,n]=e.split(`:`);return`${t}:${n}`});return Array.from(new Set([...t,...n]))})},isSessionEventData(e){return typeof e==`object`&&!!e&&`id`in e&&`topic`in e&&`params`in e&&typeof e.params==`object`&&e.params!==null&&`chainId`in e.params&&`event`in e.params&&typeof e.params.event==`object`&&e.params.event!==null}},AJ=class{constructor({provider:e,caipNetworks:t,namespace:n}){this.id=B.CONNECTOR_ID.WALLET_CONNECT,this.name=lf.ConnectorNamesMap[B.CONNECTOR_ID.WALLET_CONNECT],this.type=`WALLET_CONNECT`,this.imageId=lf.ConnectorImageIds[B.CONNECTOR_ID.WALLET_CONNECT],this.caipNetworks=t,this.provider=e,this.chain=n}get chains(){return this.caipNetworks}async connectWalletConnect(){if(!await this.authenticate()){let e=y.state.universalProviderConfigOverride,t=kJ.createNamespaces(this.caipNetworks,e);await this.provider.connect({optionalNamespaces:t})}return{clientId:await this.provider.client.core.crypto.getClientId(),session:this.provider.session}}async disconnect(){await this.provider.disconnect()}async authenticate(){let e=this.chains.map(e=>e.caipNetworkId);return F.universalProviderAuthenticate({universalProvider:this.provider,chains:e,methods:jJ})}},jJ=[`eth_accounts`,`eth_requestAccounts`,`eth_sendRawTransaction`,`eth_sign`,`eth_signTransaction`,`eth_signTypedData`,`eth_signTypedData_v3`,`eth_signTypedData_v4`,`eth_sendTransaction`,`personal_sign`,`wallet_switchEthereumChain`,`wallet_addEthereumChain`,`wallet_getPermissions`,`wallet_requestPermissions`,`wallet_registerOnboarding`,`wallet_watchAsset`,`wallet_scanQRCode`,`wallet_getCallsStatus`,`wallet_sendCalls`,`wallet_getCapabilities`,`wallet_grantPermissions`,`wallet_revokePermissions`,`wallet_getAssets`],MJ=class{constructor(e){this.availableConnectors=[],this.eventListeners=new Map,e&&this.construct(e)}construct(e){this.caipNetworks=e.networks,this.projectId=e.projectId,this.namespace=e.namespace,this.adapterType=e.adapterType}get connectors(){return this.availableConnectors}get networks(){return this.caipNetworks||[]}setAuthProvider(e){this.addConnector({id:B.CONNECTOR_ID.AUTH,type:`AUTH`,name:B.CONNECTOR_NAMES.AUTH,provider:e,imageId:lf.ConnectorImageIds[B.CONNECTOR_ID.AUTH],chain:this.namespace,chains:[]})}addConnector(...e){let t=new Set;this.availableConnectors=[...e,...this.availableConnectors].filter(e=>t.has(e.id)?!1:(t.add(e.id),!0)),this.emit(`connectors`,this.availableConnectors)}setStatus(e,t){z.setStatus(e,t)}on(e,t){this.eventListeners.has(e)||this.eventListeners.set(e,new Set),this.eventListeners.get(e)?.add(t)}off(e,t){let n=this.eventListeners.get(e);n&&n.delete(t)}removeAllEventListeners(){this.eventListeners.forEach(e=>{e.clear()})}emit(e,t){let n=this.eventListeners.get(e);n&&n.forEach(e=>e(t))}async connectWalletConnect(e){return{clientId:(await this.getWalletConnectConnector().connectWalletConnect()).clientId}}async switchNetwork(e){let{caipNetwork:t,providerType:n}=e;if(!e.provider)return;let r=`provider`in e.provider?e.provider.provider:e.provider;if(n===`WALLET_CONNECT`){r.setDefaultChain(t.caipNetworkId);return}if(r&&n===`AUTH`){let e=r;await e.switchNetwork(t.caipNetworkId);let n=await e.getUser({chainId:t.caipNetworkId,preferredAccountType:y.state.defaultAccountTypes[t.chainNamespace]});this.emit(`switchNetwork`,n)}}getWalletConnectConnector(){let e=this.connectors.find(e=>e instanceof AJ);if(!e)throw Error(`WalletConnectConnector not found`);return e}},NJ=class extends MJ{setUniversalProvider(e){this.addConnector(new AJ({provider:e,caipNetworks:this.caipNetworks||[],namespace:this.namespace}))}async connect(e){return Promise.resolve({id:`WALLET_CONNECT`,type:`WALLET_CONNECT`,chainId:Number(e.chainId),provider:this.provider,address:``})}async disconnect(){try{await this.getWalletConnectConnector().disconnect()}catch(e){console.warn(`UniversalAdapter:disconnect - error`,e)}}async getAccounts({namespace:e}){let t=this.provider?.session?.namespaces?.[e]?.accounts?.map(e=>{let[,,t]=e.split(`:`);return t}).filter((e,t,n)=>n.indexOf(e)===t)||[];return Promise.resolve({accounts:t.map(t=>P.createAccount(e,t,e===`bip122`?`payment`:`eoa`))})}async syncConnectors(){return Promise.resolve()}async getBalance(e){if(!(e.caipNetwork&&u.BALANCE_SUPPORTED_CHAINS.includes(e.caipNetwork?.chainNamespace))||e.caipNetwork?.testnet)return{balance:`0.00`,symbol:e.caipNetwork?.nativeCurrency.symbol||``};if(z.state.balanceLoading&&e.chainId===G.state.activeCaipNetwork?.id)return{balance:z.state.balance||`0.00`,symbol:z.state.balanceSymbol||``};let t=(await z.fetchTokenBalance()).find(t=>t.chainId===`${e.caipNetwork?.chainNamespace}:${e.chainId}`&&t.symbol===e.caipNetwork?.nativeCurrency.symbol);return{balance:t?.quantity.numeric||`0.00`,symbol:t?.symbol||e.caipNetwork?.nativeCurrency.symbol||``}}async signMessage(e){let{provider:t,message:n,address:r}=e;if(!t)throw Error(`UniversalAdapter:signMessage - provider is undefined`);let i=``;return i=G.state.activeCaipNetwork?.chainNamespace===B.CHAIN.SOLANA?(await t.request({method:`solana_signMessage`,params:{message:Fs.encode(new TextEncoder().encode(n)),pubkey:r}},G.state.activeCaipNetwork?.caipNetworkId)).signature:await t.request({method:`personal_sign`,params:[n,r]},G.state.activeCaipNetwork?.caipNetworkId),{signature:i}}async estimateGas(){return Promise.resolve({gas:BigInt(0)})}async getProfile(){return Promise.resolve({profileImage:``,profileName:``})}async sendTransaction(){return Promise.resolve({hash:``})}walletGetAssets(e){return Promise.resolve({})}async writeContract(){return Promise.resolve({hash:``})}async getEnsAddress(){return Promise.resolve({address:!1})}parseUnits(){return 0n}formatUnits(){return`0`}async getCapabilities(){return Promise.resolve({})}async grantPermissions(){return Promise.resolve({})}async revokePermissions(){return Promise.resolve(`0x`)}async syncConnection(){return Promise.resolve({id:`WALLET_CONNECT`,type:`WALLET_CONNECT`,chainId:1,provider:this.provider,address:``})}async switchNetwork(e){let{caipNetwork:t}=e,n=this.getWalletConnectConnector();if(t.chainNamespace===B.CHAIN.EVM)try{await n.provider?.request({method:`wallet_switchEthereumChain`,params:[{chainId:Hu(t.id)}]})}catch(e){if(e.code===CJ.ERROR_CODE_UNRECOGNIZED_CHAIN_ID||e.code===CJ.ERROR_INVALID_CHAIN_ID||e.code===CJ.ERROR_CODE_DEFAULT||e?.data?.originalError?.code===CJ.ERROR_CODE_UNRECOGNIZED_CHAIN_ID)try{await n.provider?.request({method:`wallet_addEthereumChain`,params:[{chainId:Hu(t.id),rpcUrls:[t?.rpcUrls.chainDefault?.http],chainName:t.name,nativeCurrency:t.nativeCurrency,blockExplorerUrls:[t.blockExplorers?.default.url]}]})}catch{throw Error(`Chain is not supported`)}}n.provider.setDefaultChain(t.caipNetworkId)}getWalletConnectProvider(){return this.connectors.find(e=>e.type===`WALLET_CONNECT`)?.provider}},PJ=class{constructor(e){this.hasSwitchedToPreferredAccountTypeOnConnect=!1,this.chainNamespaces=[],this.reportedAlertErrors={},this.getCaipNetwork=e=>e?G.getNetworkData(e)?.caipNetwork||G.getRequestedCaipNetworks(e).filter(t=>t.chainNamespace===e)?.[0]:G.state.activeCaipNetwork||this.defaultCaipNetwork,this.getCaipNetworkId=()=>{let e=this.getCaipNetwork();if(e)return e.id},this.getCaipNetworks=e=>G.getRequestedCaipNetworks(e),this.getActiveChainNamespace=()=>G.state.activeChain,this.setRequestedCaipNetworks=(e,t)=>{G.setRequestedCaipNetworks(e,t)},this.getApprovedCaipNetworkIds=()=>G.getAllApprovedCaipNetworkIds(),this.getCaipAddress=e=>G.state.activeChain===e||!e?G.state.activeCaipAddress:G.getAccountProp(`caipAddress`,e),this.setClientId=e=>{V.setClientId(e)},this.getProvider=e=>yf.getProvider(e),this.getProviderType=e=>yf.getProviderId(e),this.getPreferredAccountType=()=>z.state.preferredAccountType,this.setCaipAddress=(e,t)=>{z.setCaipAddress(e,t)},this.setBalance=(e,t,n)=>{z.setBalance(e,t,n)},this.setProfileName=(e,t)=>{z.setProfileName(e,t)},this.setProfileImage=(e,t)=>{z.setProfileImage(e,t)},this.setUser=(e,t)=>{z.setUser(e,t),y.state.enableEmbedded&&ce.close()},this.resetAccount=e=>{z.resetAccount(e)},this.setCaipNetwork=e=>{G.setActiveCaipNetwork(e)},this.setCaipNetworkOfNamespace=(e,t)=>{G.setChainNetworkData(t,{caipNetwork:e})},this.setAllAccounts=(e,t)=>{z.setAllAccounts(e,t),y.setHasMultipleAddresses(e?.length>1)},this.setStatus=(e,t)=>{z.setStatus(e,t),_.isConnected()?E.setConnectionStatus(`connected`):E.setConnectionStatus(`disconnected`)},this.getAddressByChainNamespace=e=>G.getAccountProp(`address`,e),this.setConnectors=e=>{let t=[..._.getConnectors(),...e];_.setConnectors(t)},this.fetchIdentity=e=>V.fetchIdentity(e),this.getReownName=e=>cf.getNamesForAddress(e),this.getConnectors=()=>_.getConnectors(),this.getConnectorImage=e=>N.getConnectorImage(e),this.setConnectedWalletInfo=(e,t)=>{let n=yf.getProviderId(t),r=e?{...e,type:n}:void 0;z.setConnectedWalletInfo(r,t)},this.getIsConnectedState=()=>!!G.state.activeCaipAddress,this.addAddressLabel=(e,t,n)=>{z.addAddressLabel(e,t,n)},this.removeAddressLabel=(e,t)=>{z.removeAddressLabel(e,t)},this.getAddress=e=>G.state.activeChain===e||!e?z.state.address:G.getAccountProp(`address`,e),this.setApprovedCaipNetworksData=e=>G.setApprovedCaipNetworksData(e),this.resetNetwork=e=>{G.resetNetwork(e)},this.addConnector=e=>{_.addConnector(e)},this.resetWcConnection=()=>{H.resetWcConnection()},this.setAddressExplorerUrl=(e,t)=>{z.setAddressExplorerUrl(e,t)},this.setSmartAccountDeployed=(e,t)=>{z.setSmartAccountDeployed(e,t)},this.setSmartAccountEnabledNetworks=(e,t)=>{G.setSmartAccountEnabledNetworks(e,t)},this.setPreferredAccountType=(e,t)=>{z.setPreferredAccountType(e,t)},this.setEIP6963Enabled=e=>{y.setEIP6963Enabled(e)},this.handleUnsafeRPCRequest=()=>{if(this.isOpen()){if(this.isTransactionStackEmpty())return;this.redirect(`ApproveTransaction`)}else this.open({view:`ApproveTransaction`})},this.options=e,this.version=e.sdkVersion,this.caipNetworks=this.extendCaipNetworks(e),this.chainNamespaces=[...new Set(this.caipNetworks?.map(e=>e.chainNamespace))],this.defaultCaipNetwork=this.extendDefaultCaipNetwork(e),this.chainAdapters=this.createAdapters(e.adapters),this.initialize(e),this.sendInitializeEvent(e)}async initialize(e){this.initControllers(e),await this.initChainAdapters(),await this.injectModalUi(),await this.syncExistingConnection(),ee.set({initialized:!0})}sendInitializeEvent(e){let{...t}=e;delete t.adapters,b.sendEvent({type:`track`,event:`INITIALIZE`,properties:{...t,networks:e.networks.map(e=>e.id),siweConfig:{options:e.siweConfig?.options||{}}}})}initControllers(e){this.initializeOptionsController(e),this.initializeChainController(e),this.initializeThemeController(e),this.initializeConnectionController(e),this.initializeConnectorController()}initializeThemeController(e){e.themeMode&&A.setThemeMode(e.themeMode),e.themeVariables&&A.setThemeVariables(e.themeVariables)}initializeChainController(e){if(!this.connectionControllerClient||!this.networkControllerClient)throw Error(`ConnectionControllerClient and NetworkControllerClient must be set`);G.initialize(e.adapters??[],this.caipNetworks,{connectionControllerClient:this.connectionControllerClient,networkControllerClient:this.networkControllerClient});let t=this.getDefaultNetwork();t&&G.setActiveCaipNetwork(t)}initializeConnectionController(e){H.setWcBasic(e.basic??!1)}initializeConnectorController(){_.initialize(this.chainNamespaces)}initializeOptionsController(e){y.setDebug(e.debug!==!1),y.setEnableWalletConnect(e.enableWalletConnect!==!1),y.setEnableWalletGuide(e.enableWalletGuide!==!1),y.setEnableWallets(e.enableWallets!==!1),y.setEIP6963Enabled(e.enableEIP6963!==!1),y.setEnableNetworkSwitch(e.enableNetworkSwitch!==!1),y.setEnableAuthLogger(e.enableAuthLogger!==!1),y.setCustomRpcUrls(e.customRpcUrls),y.setSdkVersion(e.sdkVersion),y.setProjectId(e.projectId),y.setEnableEmbedded(e.enableEmbedded),y.setAllWallets(e.allWallets),y.setIncludeWalletIds(e.includeWalletIds),y.setExcludeWalletIds(e.excludeWalletIds),y.setFeaturedWalletIds(e.featuredWalletIds),y.setTokens(e.tokens),y.setTermsConditionsUrl(e.termsConditionsUrl),y.setPrivacyPolicyUrl(e.privacyPolicyUrl),y.setCustomWallets(e.customWallets),y.setFeatures(e.features),y.setAllowUnsupportedChain(e.allowUnsupportedChain),y.setDefaultAccountTypes(e.defaultAccountTypes),y.setUniversalProviderConfigOverride(e.universalProviderConfigOverride);let t=this.getDefaultMetaData();if(!e.metadata&&t&&(e.metadata=t),y.setMetadata(e.metadata),y.setDisableAppend(e.disableAppend),y.setEnableEmbedded(e.enableEmbedded),y.setSIWX(e.siwx),!e.projectId){ae.open(uf.ALERT_ERRORS.PROJECT_ID_NOT_CONFIGURED,`error`);return}if(e.adapters?.find(e=>e.namespace===B.CHAIN.EVM)&&e.siweConfig){if(e.siwx)throw Error("Cannot set both `siweConfig` and `siwx` options");y.setSIWX(e.siweConfig.mapToSIWX())}}getDefaultMetaData(){return typeof window<`u`&&typeof document<`u`?{name:document.getElementsByTagName(`title`)?.[0]?.textContent||``,description:document.querySelector(`meta[property="og:description"]`)?.content||``,url:window.location.origin,icons:[document.querySelector(`link[rel~="icon"]`)?.href||``]}:null}setUnsupportedNetwork(e){let t=this.getActiveChainNamespace();if(t){let n=gf.getUnsupportedNetwork(`${t}:${e}`);G.setActiveCaipNetwork(n)}}getDefaultNetwork(){return gf.getCaipNetworkFromStorage(this.defaultCaipNetwork)}extendCaipNetwork(e,t){return gf.extendCaipNetwork(e,{customNetworkImageUrls:t.chainImages,projectId:t.projectId})}extendCaipNetworks(e){return gf.extendCaipNetworks(e.networks,{customNetworkImageUrls:e.chainImages,customRpcUrls:e.customRpcUrls,projectId:e.projectId})}extendDefaultCaipNetwork(e){let t=e.networks.find(t=>t.id===e.defaultNetwork?.id);return t?gf.extendCaipNetwork(t,{customNetworkImageUrls:e.chainImages,customRpcUrls:e.customRpcUrls,projectId:e.projectId}):void 0}createClients(){this.connectionControllerClient={connectWalletConnect:async()=>{let e=G.state.activeChain,t=this.getAdapter(e),n=this.getCaipNetwork(e)?.id;if(!t)throw Error(`Adapter not found`);let r=await t.connectWalletConnect(n);this.close(),this.setClientId(r?.clientId||null),E.setConnectedNamespaces([...G.state.chains.keys()]),this.chainNamespaces.forEach(e=>{_.setConnectorId(K.CONNECTOR_TYPE_WALLET_CONNECT,e)}),await this.syncWalletConnectAccount()},connectExternal:async({id:e,info:t,type:n,provider:r,chain:i,caipNetwork:a})=>{let o=G.state.activeChain,s=i||o,c=this.getAdapter(s);if(i&&i!==o&&!a){let e=this.caipNetworks?.find(e=>e.chainNamespace===i);e&&this.setCaipNetwork(e)}if(!c)throw Error(`Adapter not found`);let l=this.getCaipNetwork(s),u=await c.connect({id:e,info:t,type:n,provider:r,chainId:a?.id||l?.id,rpcUrl:a?.rpcUrls?.default?.http?.[0]||l?.rpcUrls?.default?.http?.[0]});if(!u)return;E.addConnectedNamespace(s),this.syncProvider({...u,chainNamespace:s}),await this.syncAccount({...u,chainNamespace:s});let{accounts:d}=await c.getAccounts({namespace:s,id:e});this.setAllAccounts(d,s)},reconnectExternal:async({id:e,info:t,type:n,provider:r})=>{let i=G.state.activeChain,a=this.getAdapter(i);a?.reconnect&&(await a?.reconnect({id:e,info:t,type:n,provider:r,chainId:this.getCaipNetwork()?.id}),E.addConnectedNamespace(i))},disconnect:async e=>{let t=e||G.state.activeChain,n=this.getAdapter(t),r=yf.getProvider(t),i=yf.getProviderId(t);await n?.disconnect({provider:r,providerType:i}),E.removeConnectedNamespace(t),yf.resetChain(t),this.setUser(void 0,t),this.setStatus(`disconnected`,t),this.hasSwitchedToPreferredAccountTypeOnConnect=!1},checkInstalled:e=>e?e.some(e=>!!window.ethereum?.[String(e)]):!!window.ethereum,signMessage:async e=>(await this.getAdapter(G.state.activeChain)?.signMessage({message:e,address:z.state.address,provider:yf.getProvider(G.state.activeChain)}))?.signature||``,sendTransaction:async e=>{if(e.chainNamespace===B.CHAIN.EVM){let t=this.getAdapter(G.state.activeChain),n=yf.getProvider(G.state.activeChain);return(await t?.sendTransaction({...e,caipNetwork:this.getCaipNetwork(),provider:n}))?.hash||``}return``},estimateGas:async e=>{if(e.chainNamespace===B.CHAIN.EVM){let t=this.getAdapter(G.state.activeChain),n=yf.getProvider(G.state.activeChain),r=this.getCaipNetwork();if(!r)throw Error(`CaipNetwork is undefined`);return(await t?.estimateGas({...e,provider:n,caipNetwork:r}))?.gas||0n}return 0n},getEnsAvatar:async()=>(await this.getAdapter(G.state.activeChain)?.getProfile({address:z.state.address,chainId:Number(this.getCaipNetwork()?.id)}))?.profileImage||!1,getEnsAddress:async e=>{let t=this.getAdapter(G.state.activeChain),n=this.getCaipNetwork();return n&&(await t?.getEnsAddress({name:e,caipNetwork:n}))?.address||!1},writeContract:async e=>{let t=this.getAdapter(G.state.activeChain),n=this.getCaipNetwork(),r=this.getCaipAddress(),i=yf.getProvider(G.state.activeChain);if(!n||!r)throw Error(`CaipNetwork or CaipAddress is undefined`);return(await t?.writeContract({...e,caipNetwork:n,provider:i,caipAddress:r}))?.hash},parseUnits:(e,t)=>this.getAdapter(G.state.activeChain)?.parseUnits({value:e,decimals:t})??0n,formatUnits:(e,t)=>this.getAdapter(G.state.activeChain)?.formatUnits({value:e,decimals:t})??`0`,getCapabilities:async e=>await this.getAdapter(G.state.activeChain)?.getCapabilities(e),grantPermissions:async e=>await this.getAdapter(G.state.activeChain)?.grantPermissions(e),revokePermissions:async e=>{let t=this.getAdapter(G.state.activeChain);return t?.revokePermissions?await t.revokePermissions(e):`0x`},walletGetAssets:async e=>await this.getAdapter(G.state.activeChain)?.walletGetAssets(e)??{}},this.networkControllerClient={switchCaipNetwork:async e=>await this.switchCaipNetwork(e),getApprovedCaipNetworksData:async()=>this.getApprovedCaipNetworksData()},H.setClient(this.connectionControllerClient)}getApprovedCaipNetworksData(){if(yf.getProviderId(G.state.activeChain)===K.CONNECTOR_TYPE_WALLET_CONNECT){let e=this.universalProvider?.session?.namespaces;return{supportsAllNetworks:this.universalProvider?.session?.peer?.metadata.name===`MetaMask Wallet`,approvedCaipNetworkIds:this.getChainsFromNamespaces(e)}}return{supportsAllNetworks:!0,approvedCaipNetworkIds:[]}}async switchCaipNetwork(e){if(!e)return;let t=e.chainNamespace;if(this.getAddressByChainNamespace(e.chainNamespace)){let n=yf.getProvider(t),r=yf.getProviderId(t);if(e.chainNamespace===G.state.activeChain)await this.getAdapter(t)?.switchNetwork({caipNetwork:e,provider:n,providerType:r});else if(this.setCaipNetwork(e),r===K.CONNECTOR_TYPE_WALLET_CONNECT)this.syncWalletConnectAccount();else{let n=this.getAddressByChainNamespace(t);n&&this.syncAccount({address:n,chainId:e.id,chainNamespace:t})}}else this.setCaipNetwork(e)}getChainsFromNamespaces(e={}){return Object.values(e).flatMap(e=>{let t=e.chains||[],n=e.accounts.map(e=>{let{chainId:t,chainNamespace:n}=qe.parseCaipAddress(e);return`${n}:${t}`});return Array.from(new Set([...t,...n]))})}createAdapters(e){return this.createClients(),this.chainNamespaces.reduce((t,n)=>{let r=e?.find(e=>e.namespace===n);return r?(t[n]=r,t[n].namespace=n,t[n].construct({namespace:n,projectId:this.options?.projectId,networks:this.caipNetworks})):t[n]=new NJ({namespace:n,networks:this.caipNetworks}),t},{})}async initChainAdapter(e){this.onConnectors(e),this.listenAdapter(e),this.chainAdapters?.[e].syncConnectors(this.options,this),await this.createUniversalProviderForAdapter(e)}async initChainAdapters(){await Promise.all(this.chainNamespaces.map(async e=>{await this.initChainAdapter(e)}))}onConnectors(e){this.getAdapter(e)?.on(`connectors`,this.setConnectors.bind(this))}listenAdapter(e){let t=this.getAdapter(e);if(!t)return;let n=E.getConnectionStatus();n===`connected`?this.setStatus(`connecting`,e):(n===`disconnected`&&E.clearAddressCache(),this.setStatus(n,e)),t.on(`switchNetwork`,({address:t,chainId:n})=>{let r=this.caipNetworks?.find(e=>e.id===n||e.caipNetworkId===n),i=G.state.activeChain===e,a=G.getAccountProp(`address`,e);if(r){let r=i&&t?t:a;r&&this.syncAccount({address:r,chainId:n,chainNamespace:e})}else this.setUnsupportedNetwork(n)}),t.on(`disconnect`,this.disconnect.bind(this,e)),t.on(`pendingTransactions`,()=>{let e=z.state.address,t=G.state.activeCaipNetwork;!e||!t?.id||this.updateNativeBalance(e,t.id,t.chainNamespace)}),t.on(`accountChanged`,({address:t,chainId:n})=>{let r=G.state.activeChain===e;r&&n?this.syncAccount({address:t,chainId:n,chainNamespace:e}):r&&G.state.activeCaipNetwork?.id?this.syncAccount({address:t,chainId:G.state.activeCaipNetwork?.id,chainNamespace:e}):this.syncAccountInfo(t,n,e)})}async createUniversalProviderForAdapter(e){await this.getUniversalProvider(),this.universalProvider&&this.chainAdapters?.[e]?.setUniversalProvider?.(this.universalProvider)}async syncExistingConnection(){await Promise.allSettled(this.chainNamespaces.map(e=>this.syncNamespaceConnection(e)))}async syncNamespaceConnection(e){try{let t=_.getConnectorId(e);switch(this.setStatus(`connecting`,e),t){case B.CONNECTOR_ID.WALLET_CONNECT:await this.syncWalletConnectAccount();break;case B.CONNECTOR_ID.AUTH:break;default:await this.syncAdapterConnection(e)}}catch(t){console.warn(`AppKit couldn't sync existing connection`,t),this.setStatus(`disconnected`,e)}}async syncAdapterConnection(e){let t=this.getAdapter(e),n=_.getConnectorId(e),r=this.getCaipNetwork(e),i=_.getConnectors(e).find(e=>e.id===n);try{if(!t||!i)throw Error(`Adapter or connector not found for namespace ${e}`);if(!r?.id)throw Error(`CaipNetwork not found`);let n=await t?.syncConnection({namespace:e,id:i.id,chainId:r.id,rpcUrl:r?.rpcUrls?.default?.http?.[0]});if(n){let r=await t?.getAccounts({namespace:e,id:i.id});r&&r.accounts.length>0?this.setAllAccounts(r.accounts,e):this.setAllAccounts([P.createAccount(e,n.address,`eoa`)],e),this.syncProvider({...n,chainNamespace:e}),await this.syncAccount({...n,chainNamespace:e}),this.setStatus(`connected`,e)}else this.setStatus(`disconnected`,e)}catch{this.setStatus(`disconnected`,e)}}async syncWalletConnectAccount(){let e=this.chainNamespaces.map(async e=>{let t=this.getAdapter(e),n=this.universalProvider?.session?.namespaces?.[e]?.accounts||[],r=G.state.activeCaipNetwork?.id,i=n.find(e=>{let{chainId:t}=qe.parseCaipAddress(e);return t===r?.toString()})||n[0];if(i){let n=qe.validateCaipAddress(i),{chainId:r,address:a}=qe.parseCaipAddress(n);if(yf.setProviderId(e,K.CONNECTOR_TYPE_WALLET_CONNECT),this.caipNetworks&&G.state.activeCaipNetwork&&t?.namespace!==B.CHAIN.EVM){let n=t?.getWalletConnectProvider({caipNetworks:this.caipNetworks,provider:this.universalProvider,activeCaipNetwork:G.state.activeCaipNetwork});yf.setProvider(e,n)}else yf.setProvider(e,this.universalProvider);_.setConnectorId(B.CONNECTOR_ID.WALLET_CONNECT,e),E.addConnectedNamespace(e),this.syncWalletConnectAccounts(e),await this.syncAccount({address:a,chainId:r,chainNamespace:e})}else this.setStatus(`disconnected`,e);await G.setApprovedCaipNetworksData(e)});await Promise.all(e)}syncWalletConnectAccounts(e){let t=this.universalProvider?.session?.namespaces?.[e]?.accounts?.map(e=>{let{address:t}=qe.parseCaipAddress(e);return t}).filter((e,t,n)=>n.indexOf(e)===t);t&&this.setAllAccounts(t.map(t=>P.createAccount(e,t,e===`bip122`?`payment`:`eoa`)),e)}syncProvider({type:e,provider:t,id:n,chainNamespace:r}){yf.setProviderId(r,e),yf.setProvider(r,t),_.setConnectorId(n,r)}async syncAccount(e){let t=e.chainNamespace===G.state.activeChain,n=G.getCaipNetworkByNamespace(e.chainNamespace,e.chainId),{address:r,chainId:i,chainNamespace:a}=e,{chainId:o}=E.getActiveNetworkProps(),s=i||o,c=G.state.activeCaipNetwork?.name===B.UNSUPPORTED_NETWORK_NAME,l=G.getNetworkProp(`supportsAllNetworks`,a);if(this.setStatus(`connected`,a),!(c&&!l)&&s){let e=this.caipNetworks?.find(e=>e.id.toString()===s.toString()),i=this.caipNetworks?.find(e=>e.chainNamespace===a);if(!l&&!e&&!i){let t=this.getApprovedCaipNetworkIds()||[],n=t.find(e=>qe.parseCaipNetworkId(e)?.chainId===s.toString()),r=t.find(e=>qe.parseCaipNetworkId(e)?.chainNamespace===a);e=this.caipNetworks?.find(e=>e.caipNetworkId===n),i=this.caipNetworks?.find(e=>e.caipNetworkId===r||`deprecatedCaipNetworkId`in e&&e.deprecatedCaipNetworkId===r)}let o=e||i;o?.chainNamespace===G.state.activeChain?y.state.enableNetworkSwitch&&!y.state.allowUnsupportedChain&&G.state.activeCaipNetwork?.name===B.UNSUPPORTED_NETWORK_NAME?G.showUnsupportedChainUI():this.setCaipNetwork(o):t||n&&this.setCaipNetworkOfNamespace(n,a),this.syncConnectedWalletInfo(a),he.isLowerCaseMatch(r,z.state.address)||this.syncAccountInfo(r,o?.id,a),t?await this.syncBalance({address:r,chainId:o?.id,chainNamespace:a}):await this.syncBalance({address:r,chainId:n?.id,chainNamespace:a})}}async syncAccountInfo(e,t,n){let r=this.getCaipAddress(n),i=t||r?.split(`:`)[1];if(!i)return;let a=`${n}:${i}:${e}`;this.setCaipAddress(a,n),await this.syncIdentity({address:e,chainId:i,chainNamespace:n})}async syncReownName(e,t){try{let n=await this.getReownName(e);if(n[0]){let e=n[0];this.setProfileName(e.name,t)}else this.setProfileName(null,t)}catch{this.setProfileName(null,t)}}syncConnectedWalletInfo(e){let t=_.getConnectorId(e),n=yf.getProviderId(e);if(n===K.CONNECTOR_TYPE_ANNOUNCED||n===K.CONNECTOR_TYPE_INJECTED){if(t){let n=this.getConnectors().find(e=>e.id===t);if(n){let{info:t,name:r,imageUrl:i}=n,a=i||this.getConnectorImage(n);this.setConnectedWalletInfo({name:r,icon:a,...t},e)}}}else if(n===K.CONNECTOR_TYPE_WALLET_CONNECT){let t=yf.getProvider(e);t?.session&&this.setConnectedWalletInfo({...t.session.peer.metadata,name:t.session.peer.metadata.name,icon:t.session.peer.metadata.icons?.[0]},e)}else if(t)if(t===B.CONNECTOR_ID.COINBASE){let t=this.getConnectors().find(e=>e.id===B.CONNECTOR_ID.COINBASE);this.setConnectedWalletInfo({name:`Coinbase Wallet`,icon:this.getConnectorImage(t)},e)}else this.setConnectedWalletInfo({name:t},e)}async syncBalance(e){!se.getNetworksByNamespace(this.caipNetworks,e.chainNamespace).find(t=>t.id.toString()===e.chainId?.toString())||!e.chainId||await this.updateNativeBalance(e.address,e.chainId,e.chainNamespace)}async updateNativeBalance(e,t,n){let r=this.getAdapter(n);if(r){let i=await r.getBalance({address:e,chainId:t,caipNetwork:this.getCaipNetwork(n),tokens:this.options.tokens});this.setBalance(i.balance,i.symbol,n)}}async initializeUniversalAdapter(){let e=ff.createLogger((e,...t)=>{e&&this.handleAlertError(e),console.error(...t)}),t={projectId:this.options?.projectId,metadata:{name:this.options?.metadata?this.options?.metadata.name:``,description:this.options?.metadata?this.options?.metadata.description:``,url:this.options?.metadata?this.options?.metadata.url:``,icons:this.options?.metadata?this.options?.metadata.icons:[``]},logger:e};y.setManualWCControl(!!this.options?.manualWCControl),this.universalProvider=this.options.universalProvider??await SJ.init(t),this.listenWalletConnect()}listenWalletConnect(){this.universalProvider&&(this.universalProvider.on(`display_uri`,e=>{H.setUri(e)}),this.universalProvider.on(`connect`,H.finalizeWcConnection),this.universalProvider.on(`disconnect`,()=>{this.chainNamespaces.forEach(e=>{this.resetAccount(e)}),H.resetWcConnection()}),this.universalProvider.on(`chainChanged`,e=>{let t=this.caipNetworks?.find(t=>t.id==e),n=this.getCaipNetwork();if(!t){this.setUnsupportedNetwork(e);return}n?.id!==t?.id&&this.setCaipNetwork(t)}),this.universalProvider.on(`session_event`,e=>{if(kJ.isSessionEventData(e)){let{name:t,data:n}=e.params.event;t===`accountsChanged`&&Array.isArray(n)&&P.isCaipAddress(n[0])&&this.syncAccount(qe.parseCaipAddress(n[0]))}}))}createUniversalProvider(){return!this.universalProviderInitPromise&&P.isClient()&&this.options?.projectId&&(this.universalProviderInitPromise=this.initializeUniversalAdapter()),this.universalProviderInitPromise}async getUniversalProvider(){if(!this.universalProvider)try{await this.createUniversalProvider()}catch(e){b.sendEvent({type:`error`,event:`INTERNAL_SDK_ERROR`,properties:{errorType:`UniversalProviderInitError`,errorMessage:e instanceof Error?e.message:`Unknown`,uncaught:!1}}),console.error(`AppKit:getUniversalProvider - Cannot create provider`,e)}return this.universalProvider}handleAlertError(e){let[t,n]=Object.entries(uf.UniversalProviderErrors).find(([,{message:t}])=>e.message.includes(t))??[],{message:r,alertErrorKey:i}=n??{};if(t&&r&&!this.reportedAlertErrors[t]){let e=uf.ALERT_ERRORS[i];e&&(ae.open(e,`error`),this.reportedAlertErrors[t]=!0)}}getAdapter(e){if(e)return this.chainAdapters?.[e]}createAdapter(e){if(!e)return;let t=e.namespace;if(!t)return;this.createClients();let n=e;n.namespace=t,n.construct({namespace:t,projectId:this.options?.projectId,networks:this.caipNetworks}),this.chainNamespaces.includes(t)||this.chainNamespaces.push(t),this.chainAdapters&&(this.chainAdapters[t]=n)}async open(e){await this.injectModalUi(),e?.uri&&H.setUri(e.uri),await ce.open(e)}async close(){await this.injectModalUi(),ce.close()}setLoading(e,t){ce.setLoading(e,t)}async disconnect(e){await H.disconnect(e)}getError(){return``}getChainId(){return G.state.activeCaipNetwork?.id}async switchNetwork(e){let t=this.caipNetworks?.find(t=>t.id===e.id);if(!t){ae.open(uf.ALERT_ERRORS.SWITCH_NETWORK_NOT_FOUND,`error`);return}await G.switchActiveNetwork(t)}getWalletProvider(){return G.state.activeChain?yf.state.providers[G.state.activeChain]:null}getWalletProviderType(){return yf.getProviderId(G.state.activeChain)}subscribeProviders(e){return yf.subscribeProviders(e)}getThemeMode(){return A.state.themeMode}getThemeVariables(){return A.state.themeVariables}setThemeMode(e){A.setThemeMode(e),R(A.state.themeMode)}setTermsConditionsUrl(e){y.setTermsConditionsUrl(e)}setPrivacyPolicyUrl(e){y.setPrivacyPolicyUrl(e)}setThemeVariables(e){A.setThemeVariables(e),ne(A.state.themeVariables)}subscribeTheme(e){return A.subscribe(e)}getWalletInfo(){return z.state.connectedWalletInfo}getAccount(e){let t=_.getAuthConnector(e),n=G.getAccountData(e);if(n)return{allAccounts:n.allAccounts,caipAddress:n.caipAddress,address:P.getPlainAddress(n.caipAddress),isConnected:!!n.caipAddress,status:n.status,embeddedWalletInfo:t?{user:n.user,authProvider:n.socialProvider||`email`,accountType:n.preferredAccountType,isSmartAccountDeployed:!!n.smartAccountDeployed}:void 0}}subscribeAccount(e,t){let n=()=>{let n=this.getAccount(t);n&&e(n)};t?G.subscribeChainProp(`accountState`,n,t):G.subscribe(n),_.subscribe(n)}subscribeNetwork(e){return G.subscribe(({activeCaipNetwork:t})=>{e({caipNetwork:t,chainId:t?.id,caipNetworkId:t?.caipNetworkId})})}subscribeWalletInfo(e){return z.subscribeKey(`connectedWalletInfo`,e)}subscribeShouldUpdateToAddress(e){z.subscribeKey(`shouldUpdateToAddress`,e)}subscribeCaipNetworkChange(e){G.subscribeKey(`activeCaipNetwork`,e)}getState(){return ee.state}subscribeState(e){return ee.subscribe(e)}showErrorMessage(e){le.showError(e)}showSuccessMessage(e){le.showSuccess(e)}getEvent(){return{...b.state}}subscribeEvents(e){return b.subscribe(e)}replace(e){M.replace(e)}redirect(e){M.push(e)}popTransactionStack(e){M.popTransactionStack(e)}isOpen(){return ce.state.open}isTransactionStackEmpty(){return M.state.transactionStack.length===0}isTransactionShouldReplaceView(){return M.state.transactionStack[M.state.transactionStack.length-1]?.replace}static getInstance(){return this.instance}updateFeatures(e){y.setFeatures(e)}updateOptions(e){let t={...y.state||{},...e};y.setOptions(t)}setConnectMethodsOrder(e){y.setConnectMethodsOrder(e)}setWalletFeaturesOrder(e){y.setWalletFeaturesOrder(e)}setCollapseWallets(e){y.setCollapseWallets(e)}setSocialsOrder(e){y.setSocialsOrder(e)}getConnectMethodsOrder(){return me.getConnectOrderMethod(y.state.features,_.getConnectors())}removeAdapter(e){let t=this.getIsConnectedState(),n=this.getAdapter(e);if(!n||!this.chainAdapters||t)return;let r=this.caipNetworks?.filter(t=>t.chainNamespace!==e);G.removeAdapter(e),_.removeAdapter(e),this.chainNamespaces=this.chainNamespaces.filter(t=>t!==e),this.caipNetworks=r,n.removeAllEventListeners(),Reflect.deleteProperty(this.chainAdapters,e)}addAdapter(e,t){let n=e.namespace;if(!this.connectionControllerClient||!this.networkControllerClient||!this.chainAdapters||!n)return;let r=this.extendCaipNetworks({...this.options,networks:t});this.caipNetworks=[...this.caipNetworks||[],...r],this.createAdapter(e),this.initChainAdapter(n),G.addAdapter(e,{connectionControllerClient:this.connectionControllerClient,networkControllerClient:this.networkControllerClient},r)}addNetwork(e,t){if(this.chainAdapters&&!this.chainAdapters[e])throw Error(`Adapter for namespace ${e} doesn't exist`);let n=this.extendCaipNetwork(t,this.options);G.addNetwork(n),this.caipNetworks&&!this.caipNetworks?.find(e=>e.id===n.id)&&this.caipNetworks.push(n)}removeNetwork(e,t){if(this.chainAdapters&&!this.chainAdapters[e])throw Error(`Adapter for namespace ${e} doesn't exist`);if(!this.caipNetworks?.find(e=>e.id===t))throw Error(`Network with ID ${t} not found`);if(!this.caipNetworks)return;let n=this.caipNetworks.filter(n=>n.chainNamespace===e&&n.id!==t);if(!n?.length)throw Error(`Cannot remove last network for a namespace`);G.removeNetwork(e,t),this.caipNetworks=[...n]}},FJ=!1,IJ=class extends PJ{async open(e){_.isConnected()||await super.open(e)}async close(){await super.close(),this.options.manualWCControl&&H.finalizeWcConnection()}async syncIdentity(e){return Promise.resolve()}async syncBalance(e){return Promise.resolve()}async injectModalUi(){if(!FJ&&P.isClient()){if(await a(()=>import(`./basic-CqqyRSQ6.js`),__vite__mapDeps([5,6,1,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])),await a(()=>import(`./w3m-modal-CcAeUAZf.js`),__vite__mapDeps([34,30,31,7,32,1])),!document.querySelector(`w3m-modal`)){let e=document.createElement(`w3m-modal`);!y.state.disableAppend&&!y.state.enableEmbedded&&document.body.insertAdjacentElement(`beforeend`,e)}FJ=!0}}},LJ=`1.7.2`;function RJ(e){return new IJ({...e,basic:!0,sdkVersion:`html-core-${LJ}`})}var zJ=class e extends Error{constructor(){super(),Object.setPrototypeOf(this,e.prototype)}},BJ=class extends Error{constructor(e){super(`WalletConnect Adapter - Method ${e} is not supported by the wallet`),this.name=`WalletConnectFeatureNotSupportedError`}};function VJ(e){let t=[e];return e===Tp.Mainnet||e===Tp.Deprecated_Mainnet?(t=[Tp.Mainnet,Tp.Deprecated_Mainnet],e===Tp.Deprecated_Mainnet&&console.warn(HJ.mainnet)):(e===Tp.Deprecated_Devnet||e===Tp.Devnet)&&(t=[Tp.Devnet,Tp.Deprecated_Devnet],Tp.Deprecated_Devnet&&console.warn(HJ.devnet)),t}var HJ={mainnet:`You are using a deprecated chain ID for Solana Mainnet, please use ${Tp.Mainnet} instead.`,devnet:`You are using a deprecated chain ID for Solana Devnet, please use ${Tp.Devnet} instead.`,wallet:`The connected wallet is using a deprecated chain ID for Solana. Please, contact them to upgrade. You can learn more at https://github.com/ChainAgnostic/namespaces/blob/main/solana/caip10.md#chain-ids`};function UJ(e,t){let n=e.namespaces.solana?.accounts.map(e=>`solana:${e.split(`:`)[1]}`);if(t===Tp.Mainnet)return n?.find(e=>e===Tp.Mainnet)?Tp.Mainnet:(console.warn(HJ.wallet),Tp.Deprecated_Mainnet);if(t===Tp.Devnet)return n?.find(e=>e===Tp.Devnet)?Tp.Devnet:(console.warn(HJ.wallet),Tp.Deprecated_Devnet);throw Error(`WalletConnect Solana Adapter: Unable to get a default chain from the session.`)}function WJ(e){return{optionalNamespaces:{solana:{chains:VJ(e),methods:[wp.signTransaction,wp.signMessage],events:[]}}}}var GJ=class e extends Error{constructor(){super(`QR Code Modal was closed by user`),Object.setPrototypeOf(this,e.prototype),this.name=`QRCodeModalError`}},KJ=class{_UniversalProvider;_session;_modal;_projectId;_network;_ConnectQueueResolver;constructor(e){if(this.initClient(e.options),this._network=e.network,!e.options.projectId)throw Error(`WalletConnect Adapter: Project ID is undefined`);this._projectId=e.options.projectId}async connect(){if(this._UniversalProvider||await new Promise(e=>{this._ConnectQueueResolver=e}),!this._UniversalProvider)throw Error(`WalletConnect Adapter - Universal Provider was undefined while calling 'connect()'`);if(this._UniversalProvider.session){this._session=this._UniversalProvider.session;let e=UJ(this._session,this._network);return this._network=e,this._UniversalProvider.setDefaultChain(e),{publicKey:this.publicKey}}await this.initModal();let e=WJ(this._network);this._modal?.open();let t=new AbortController,n=t.signal;this._modal?.subscribeState(e=>{e.open||t.abort(new GJ)});try{let t=await Promise.race([this._UniversalProvider?.connect(e),new Promise((e,t)=>{n.addEventListener(`abort`,()=>{t(n.reason)})})]);if(this._modal?.close(),this._session=t,!t)throw new je;let r=UJ(t,this._network);return this._network=r,this._UniversalProvider?.setDefaultChain(r),{publicKey:this.publicKey}}catch(e){throw this._modal?.close(),e}}async disconnect(){if(this._UniversalProvider?.session){if(await this.initModal(),!this._modal)throw Error(`WalletConnect Adapter -Modal is undefined: unable to disconnect`);await this.client.disconnect(),this._session=void 0}else throw new zJ}get client(){if(this._UniversalProvider)return this._UniversalProvider;throw new zJ}get session(){if(!this._session)throw new zJ;return this._session}get publicKey(){if(this._UniversalProvider?.session&&this._session){let{address:e}=Qm(this._session?.namespaces.solana?.accounts[0]??``);return new c(e)}throw new zJ}async signTransaction(e){this.checkIfWalletSupportsMethod(wp.signTransaction);let t=Pe(e),n=t?{}:e,{signature:r,transaction:i}=await this.client.client.request({chainId:this._network,topic:this.session.topic,request:{method:wp.signTransaction,params:{...n,transaction:this.serialize(e)}}});return i?this.deserialize(i,t):(e.addSignature(this.publicKey,Buffer.from(Fs.decode(r))),e)}async signMessage(e){this.checkIfWalletSupportsMethod(wp.signMessage);let{signature:t}=await this.client.client.request({chainId:this._network,topic:this.session.topic,request:{method:wp.signMessage,params:{pubkey:this.publicKey.toString(),message:Fs.encode(e)}}});return Fs.decode(t)}async signAndSendTransaction(e){this.checkIfWalletSupportsMethod(wp.signAndSendTransaction);let{signature:t}=await this.client.client.request({chainId:this._network,topic:this.session.topic,request:{method:wp.signAndSendTransaction,params:{transaction:this.serialize(e)}}});return t}async signAllTransactions(e){try{this.checkIfWalletSupportsMethod(wp.signAllTransactions);let t=e.map(e=>this.serialize(e)),{transactions:n}=await this.client.client.request({chainId:this._network,topic:this.session.topic,request:{method:wp.signAllTransactions,params:{transactions:t}}});return e.map((e,t)=>Pe(e)?this.deserialize(n[t]??``,!0):this.deserialize(n[t]??``))}catch(t){if(t instanceof BJ){let t=e.map(e=>this.signTransaction(e));return await Promise.all(t)}throw t}}async initClient(e){let t=await yP.init(e);this._UniversalProvider=t,this._ConnectQueueResolver&&this._ConnectQueueResolver(!0)}async initModal(){if(!this._modal){if(!this._UniversalProvider)throw Error(`WalletConnect Adapter - cannot init modal when Universal Provider is undefined`);this._modal=RJ({projectId:this._projectId,universalProvider:this._UniversalProvider,networks:[TJ,EJ,DJ],manualWCControl:!0})}}serialize(e){return Buffer.from(e.serialize({verifySignatures:!1})).toString(`base64`)}deserialize(e,t=!1){return t?s.deserialize(Buffer.from(e,`base64`)):o.from(Buffer.from(e,`base64`))}checkIfWalletSupportsMethod(e){if(!this.session.namespaces.solana?.methods.includes(e))throw new BJ(e)}},qJ=`WalletConnect`,JJ=class extends Ne{name=qJ;url=`https://walletconnect.org`;icon=`data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE4NSIgdmlld0JveD0iMCAwIDMwMCAxODUiIHdpZHRoPSIzMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTYxLjQzODU0MjkgMzYuMjU2MjYxMmM0OC45MTEyMjQxLTQ3Ljg4ODE2NjMgMTI4LjIxMTk4NzEtNDcuODg4MTY2MyAxNzcuMTIzMjA5MSAwbDUuODg2NTQ1IDUuNzYzNDE3NGMyLjQ0NTU2MSAyLjM5NDQwODEgMi40NDU1NjEgNi4yNzY1MTEyIDAgOC42NzA5MjA0bC0yMC4xMzY2OTUgMTkuNzE1NTAzYy0xLjIyMjc4MSAxLjE5NzIwNTEtMy4yMDUzIDEuMTk3MjA1MS00LjQyODA4MSAwbC04LjEwMDU4NC03LjkzMTE0NzljLTM0LjEyMTY5Mi0zMy40MDc5ODE3LTg5LjQ0Mzg4Ni0zMy40MDc5ODE3LTEyMy41NjU1Nzg4IDBsLTguNjc1MDU2MiA4LjQ5MzYwNTFjLTEuMjIyNzgxNiAxLjE5NzIwNDEtMy4yMDUzMDEgMS4xOTcyMDQxLTQuNDI4MDgwNiAwbC0yMC4xMzY2OTQ5LTE5LjcxNTUwMzFjLTIuNDQ1NTYxMi0yLjM5NDQwOTItMi40NDU1NjEyLTYuMjc2NTEyMiAwLTguNjcwOTIwNHptMjE4Ljc2Nzc5NjEgNDAuNzczNzQ0OSAxNy45MjE2OTcgMTcuNTQ2ODk3YzIuNDQ1NTQ5IDIuMzk0Mzk2OSAyLjQ0NTU2MyA2LjI3NjQ3NjkuMDAwMDMxIDguNjcwODg5OWwtODAuODEwMTcxIDc5LjEyMTEzNGMtMi40NDU1NDQgMi4zOTQ0MjYtNi40MTA1ODIgMi4zOTQ0NTMtOC44NTYxNi4wMDAwNjItLjAwMDAxLS4wMDAwMS0uMDAwMDIyLS4wMDAwMjItLjAwMDAzMi0uMDAwMDMybC01Ny4zNTQxNDMtNTYuMTU0NTcyYy0uNjExMzktLjU5ODYwMi0xLjYwMjY1LS41OTg2MDItMi4yMTQwNCAwLS4wMDAwMDQuMDAwMDA0LS4wMDAwMDcuMDAwMDA4LS4wMDAwMTEuMDAwMDExbC01Ny4zNTI5MjEyIDU2LjE1NDUzMWMtMi40NDU1MzY4IDIuMzk0NDMyLTYuNDEwNTc1NSAyLjM5NDQ3Mi04Ljg1NjE2MTIuMDAwMDg3LS4wMDAwMTQzLS4wMDAwMTQtLjAwMDAyOTYtLjAwMDAyOC0uMDAwMDQ0OS0uMDAwMDQ0bC04MC44MTI0MTk0My03OS4xMjIxODVjLTIuNDQ1NTYwMjEtMi4zOTQ0MDgtMi40NDU1NjAyMS02LjI3NjUxMTUgMC04LjY3MDkxOTdsMTcuOTIxNzI5NjMtMTcuNTQ2ODY3M2MyLjQ0NTU2MDItMi4zOTQ0MDgyIDYuNDEwNTk4OS0yLjM5NDQwODIgOC44NTYxNjAyIDBsNTcuMzU0OTc3NSA1Ni4xNTUzNTdjLjYxMTM5MDguNTk4NjAyIDEuNjAyNjQ5LjU5ODYwMiAyLjIxNDAzOTggMCAuMDAwMDA5Mi0uMDAwMDA5LjAwMDAxNzQtLjAwMDAxNy4wMDAwMjY1LS4wMDAwMjRsNTcuMzUyMTAzMS01Ni4xNTUzMzNjMi40NDU1MDUtMi4zOTQ0NjMzIDYuNDEwNTQ0LTIuMzk0NTUzMSA4Ljg1NjE2MS0uMDAwMi4wMDAwMzQuMDAwMDMzNi4wMDAwNjguMDAwMDY3My4wMDAxMDEuMDAwMTAxbDU3LjM1NDkwMiA1Ni4xNTU0MzJjLjYxMTM5LjU5ODYwMSAxLjYwMjY1LjU5ODYwMSAyLjIxNDA0IDBsNTcuMzUzOTc1LTU2LjE1NDMyNDljMi40NDU1NjEtMi4zOTQ0MDkyIDYuNDEwNTk5LTIuMzk0NDA5MiA4Ljg1NjE2IDB6IiBmaWxsPSIjM2I5OWZjIi8+PC9zdmc+`;supportedTransactionVersions=new Set([`legacy`,0]);_publicKey;_connecting;_wallet;_config;_readyState;_onDisconnect;constructor(e){super(),this._publicKey=null,this._connecting=!1,this._config=e,this._wallet=null,this._readyState=typeof window>`u`?Ae.Unsupported:Ae.Loadable,this._onDisconnect=this.disconnect.bind(this)}get publicKey(){return this._publicKey}get connecting(){return this._connecting}get readyState(){return this._readyState}async connect(){try{if(this.connected||this.connecting)return;if(this._readyState!==Ae.Loadable)throw new Oe;this._connecting=!0,this._wallet=new KJ({network:this._config.network===Me.Mainnet?Cp.Mainnet:Cp.Devnet,options:this._config.options});let{publicKey:e}=await this._wallet.connect();this._publicKey=e,this.emit(`connect`,e),this._wallet.client.on(`session_delete`,this._onDisconnect)}catch(e){throw e.constructor.name===`QRCodeModalError`||e instanceof Error&&e.name===`QRCodeModalError`?new Ee:(this._connecting=!1,e)}finally{this._connecting=!1}}async disconnect(){let e=this._wallet;if(e){e.client.off(`session_delete`,this._onDisconnect),this._publicKey=null;try{e.client.session&&await e.disconnect()}catch(e){console.error(`WalletConnectWalletAdapter: disconnect error`,e),this.emit(`error`,new ke(e?.message,e))}}this.emit(`disconnect`)}async signTransaction(e){try{let t=this._wallet;if(!t)throw new Ie;try{return await t.signTransaction(e)}catch(e){throw new De(e?.message,e)}}catch(e){throw this.emit(`error`,e),e}}async signMessage(e){try{let t=this._wallet;if(!t)throw new Ie;try{return await t.signMessage(e)}catch(e){throw new Fe(e?.message,e)}}catch(e){throw this.emit(`error`,e),e}}async signAndSendTransaction(e){try{let t=this._wallet;if(!t)throw new Ie;try{return await t.signAndSendTransaction(e)}catch(e){throw new De(e?.message,e)}}catch(e){throw this.emit(`error`,e),e}}async signAllTransactions(e){try{let t=this._wallet;if(!t)throw new Ie;try{return await t.signAllTransactions(e)}catch(e){throw new De(e?.message,e)}}catch(e){throw this.emit(`error`,e),e}}};export{JJ as WalletConnectWalletAdapter,qJ as WalletConnectWalletName};