@harsh132/crew-ai 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -0
- package/bin/crew.mjs +49 -0
- package/dist/assets/AccountNotFoundScreen-mrDHRRtZ-CNwZwgdA.js +1 -0
- package/dist/assets/AddFundsSelectionScreen-D76JlRA1-Dx0vImHm.js +24 -0
- package/dist/assets/Address-9aHCoAYt-Ca6TQh8z.js +17 -0
- package/dist/assets/AffirmativeConsentScreen-Cva7mCde-BpKZB2xK.js +6 -0
- package/dist/assets/AllowlistRejectionScreen-CJlenrjE-a-xZa8sX.js +1 -0
- package/dist/assets/ApiController-Dm_aZs5q.js +5 -0
- package/dist/assets/ArrowsRightLeftIcon-Cpc9sQGG.js +1 -0
- package/dist/assets/AuthenticateWithWalletScreen-C_zdZyDa-BP8lHEUi.js +1 -0
- package/dist/assets/AwaitingEvmToSolBridgingScreen-Ch3fh4A4-B1BDspph.js +1 -0
- package/dist/assets/AwaitingExternalEthereumTransferScreen-C9yfbYim-BN1YAQmx.js +1 -0
- package/dist/assets/AwaitingPasswordlessCodeScreen-DkpWm3cl-DB6yuR1m.js +103 -0
- package/dist/assets/AwaitingSolToEvmBridgingScreen-D-2h-r2V-DDx-QToS.js +1 -0
- package/dist/assets/BridgeNetworkSelectionView-DPw4O-jL-DLiXJ_7u.js +68 -0
- package/dist/assets/CaptchaScreen-DTWKq3oC-DStoNOyV.js +1 -0
- package/dist/assets/CheckCircleIcon-DTHMHp70.js +1 -0
- package/dist/assets/CheckCircleIcon-jhB7zp8X.js +1 -0
- package/dist/assets/Checkbox-D1EDeo41-B4iShCep.js +52 -0
- package/dist/assets/ChevronDownIcon-cvBdBC_R.js +1 -0
- package/dist/assets/Chip-CZKIKt9K-DGpuw9Pi.js +26 -0
- package/dist/assets/CoinbaseOnrampStatusScreen-yM8i1dq5-nwvQM-i-.js +16 -0
- package/dist/assets/ConnectEmailForm-CvtooZ8i-CVf2LNEF.js +3 -0
- package/dist/assets/ConnectLedgerScreen-COys-OjJ-CAsBrjgm.js +10 -0
- package/dist/assets/ConnectOnlyLandingScreen-C3myVsvL-CcdSW7Hi.js +1 -0
- package/dist/assets/ConnectOnlyStatusScreen-B-uqGIbz-Dre9H6bQ.js +1 -0
- package/dist/assets/ConnectOrCreateScreen-DD7cB8dy-CxI8fTvv.js +1 -0
- package/dist/assets/ConnectPhoneForm-BClRnco--CqcBfBZV.js +95 -0
- package/dist/assets/ConnectWalletView-D37hqEee-C1VppGRt.js +74 -0
- package/dist/assets/ConnectionStatusScreen-gJeQDnkD-Cv2Xchgs.js +7 -0
- package/dist/assets/ConnectorUtil-BS3XprR9.js +21 -0
- package/dist/assets/ConstantsUtil-DmLsRHAl.js +198 -0
- package/dist/assets/CopyToClipboard-i_OQSBJr-DWOP52LO.js +39 -0
- package/dist/assets/CopyableText-CQapvaMr-jG_q6v_s.js +28 -0
- package/dist/assets/CrossAppAuthScreen-DO1JO_KV-BpsT4WQL.js +1 -0
- package/dist/assets/CustomLandingScreenView-mjmDHGwr-CMorV_Ld.js +22 -0
- package/dist/assets/DelegatedActionsConsentScreen-BCgARvf7-CSJZU-up.js +1 -0
- package/dist/assets/DelegatedActionsRevokeScreen-BcwL74R--SCAuQ-OG.js +1 -0
- package/dist/assets/DepositAddressScreen-CDAmKcTm-C9_lhGWr.js +194 -0
- package/dist/assets/EmailInputForm-Cqo1mda8-C2y9xKLb.js +124 -0
- package/dist/assets/EmbeddedWalletConnectingScreen-CM-Kfv91-Dcp-OR3s.js +1 -0
- package/dist/assets/EmbeddedWalletCreatedScreen-Zscvn5zZ-B0V78kud.js +1 -0
- package/dist/assets/EmbeddedWalletKeyExportScreen-CP5NN-uM-D_2C420x.js +23 -0
- package/dist/assets/EmbeddedWalletOnAccountCreateScreen-Cc3IEizD-DfNQs_i3.js +1 -0
- package/dist/assets/EmbeddedWalletPasswordUpdateScreen-vT10Bm2m-o80m8UEV.js +1 -0
- package/dist/assets/EmbeddedWalletPasswordUpdateSplashScreen-BuBFHC6o-BpBfi_F9.js +1 -0
- package/dist/assets/EnrollTotp-C2nNwn93-ByQ2HtBV.js +66 -0
- package/dist/assets/EnvelopeIcon-D-QmesNq.js +1 -0
- package/dist/assets/ErrorBanner-BcpGRt0h-CNeXqIfc.js +21 -0
- package/dist/assets/ErrorMessage-D8VaAP5m-BpdhHW8B.js +8 -0
- package/dist/assets/ErrorScreen-CudzJvQF-Cj9CtRmk.js +4 -0
- package/dist/assets/ExclamationCircleIcon-kT4sJAq0.js +1 -0
- package/dist/assets/ExclamationTriangleIcon-BhYaWuCF.js +1 -0
- package/dist/assets/FarcasterConnectStatusScreen-AJge1G0j-C8K2lc0Q.js +75 -0
- package/dist/assets/FarcasterSignerStatusScreen-Cjd-9_IN-LdgPyHZj.js +28 -0
- package/dist/assets/FiatOnrampScreen-D-ijGLq9-BEItduae.js +488 -0
- package/dist/assets/FingerPrintIcon-DtmKp0tV.js +1 -0
- package/dist/assets/FundSolWalletWithExternalSolanaWallet-Bu7nN8uS-BJ53Vh4u.js +1 -0
- package/dist/assets/FundWalletMethodHeader-CkyJhN9p-BHOErvVi.js +1 -0
- package/dist/assets/FundWithBankDepositScreen-CbY8cUX1-BeX7F-2Q.js +58 -0
- package/dist/assets/FundingEditAmountScreen-DTonST2j-CP-yThbV.js +1 -0
- package/dist/assets/FundingMethodSelectionScreen-CebSau1c-BBhI5kL1.js +1 -0
- package/dist/assets/GlobeAltIcon-CP8HEwal.js +1 -0
- package/dist/assets/GooglePay-B53WnudL-TJc_nnUf.js +1 -0
- package/dist/assets/HCaptchaWrapper-CUi9LJsp-DWJGs0TK.js +4 -0
- package/dist/assets/InAppBrowserLoginNotPossible-BsOHoSJE-D5QraLs1.js +1 -0
- package/dist/assets/InfoBanner-Cb3p1z12-scQ-B3pk.js +22 -0
- package/dist/assets/InjectedWalletIcon-DLcYOGDj-wWhqDdys.js +1 -0
- package/dist/assets/InstallWalletScreen-BTkuwBNN-De-8so3x.js +1 -0
- package/dist/assets/JsonTree-BHzNC-ic-D9-xP7_V.js +34 -0
- package/dist/assets/LabelXs-oqZNqbm_-nENvK4Q2.js +6 -0
- package/dist/assets/LandingScreen-DA4XFqxS-BxIJeNon.js +1 -0
- package/dist/assets/Layouts-BMRfo5hw-DR1mfDO_.js +77 -0
- package/dist/assets/Link-DTncR-24-tWodMdTl.js +40 -0
- package/dist/assets/LinkConflictScreen-CZztICqG-Dz0I_qBv.js +77 -0
- package/dist/assets/LinkEmailScreen-DGPysBCv-Cudkz47L.js +1 -0
- package/dist/assets/LinkPasskeyScreen-CxW7ka3t-Dx8PYJsw.js +117 -0
- package/dist/assets/LinkPhoneScreen-CJcpCkxo-BTbUhvx9.js +1 -0
- package/dist/assets/Loader-UAZqxsnw-CoDoKvWJ.js +62 -0
- package/dist/assets/LoadingSkeleton-BMsgO5PV-DSh5kFAG.js +17 -0
- package/dist/assets/LockClosedIcon-RucwJCR_.js +1 -0
- package/dist/assets/LoginFailedScreen-Dze4SI3Y-BVBzu7sL.js +1 -0
- package/dist/assets/ManualTransferScreen-Drt1Mp6E-CbK48hbd.js +1 -0
- package/dist/assets/MfaAuthEnrollmentFlowScreen-5IWp37BG-B0sW1OVK.js +1 -0
- package/dist/assets/MfaAuthVerifyFlowScreen-W132fIHD-D8DNNteP.js +1 -0
- package/dist/assets/MfaEnrollmentFlowScreen-B2ZcSeBE-DE3DvN-Z.js +1 -0
- package/dist/assets/MfaVerifyFlowScreen-CzNn41ji-0FnJaanM.js +1 -0
- package/dist/assets/ModalFooter-DKyozrEX-DWQrl9hN.js +403 -0
- package/dist/assets/MoonpayStatusScreen-Bey2zhxF-CbNJA_gu.js +16 -0
- package/dist/assets/OAuthStatusScreen-D8EiVa2Y-BxfKVL_9.js +1 -0
- package/dist/assets/OpenLink-CUpJ1mOr-Bzr_f0Wd.js +39 -0
- package/dist/assets/PasskeySelectSignupOrLogin-CwjunGne-VKReUS32.js +1 -0
- package/dist/assets/PasskeyStatusScreen-D0GgmiKb-BZ1fwR-4.js +6 -0
- package/dist/assets/PasswordRecoveryScreen-Q5SHSGfd-C44CmHs6.js +20 -0
- package/dist/assets/PhArrowCircleDown-D97G-BOA.js +14 -0
- package/dist/assets/PhArrowClockwise-DVgyFuez.js +14 -0
- package/dist/assets/PhArrowDown-87b1BizM.js +14 -0
- package/dist/assets/PhArrowLeft-Da0MfnbK.js +14 -0
- package/dist/assets/PhArrowRight-AdrIL4DW.js +14 -0
- package/dist/assets/PhArrowSquareOut-Bk2CMG3I.js +14 -0
- package/dist/assets/PhArrowUp-4sgyKPGx.js +14 -0
- package/dist/assets/PhArrowUpRight-BNghD2zq.js +14 -0
- package/dist/assets/PhArrowsClockwise-BXRn1GEl.js +14 -0
- package/dist/assets/PhArrowsDownUp-DM09Jo_3.js +14 -0
- package/dist/assets/PhArrowsLeftRight-MuKBLUoF.js +14 -0
- package/dist/assets/PhBank-fHbgCqqZ.js +14 -0
- package/dist/assets/PhBrowser-2-9m-AkM.js +14 -0
- package/dist/assets/PhCaretDown-BDNabFuL.js +14 -0
- package/dist/assets/PhCaretLeft-CI460R-A.js +14 -0
- package/dist/assets/PhCaretRight-D7ZS3Ls8.js +14 -0
- package/dist/assets/PhCaretUp-C-iIfyvO.js +14 -0
- package/dist/assets/PhCheck-DxQXn57r.js +14 -0
- package/dist/assets/PhCircleHalf-MJZeRBGF.js +14 -0
- package/dist/assets/PhClock-x3MS3Mwi.js +14 -0
- package/dist/assets/PhCompass-hYn3HhGN.js +14 -0
- package/dist/assets/PhCopy-CWNYcABI.js +14 -0
- package/dist/assets/PhCreditCard-Fy4pzwtt.js +14 -0
- package/dist/assets/PhCurrencyDollar-BgiaenCi.js +14 -0
- package/dist/assets/PhDesktop-CxrzCSv5.js +14 -0
- package/dist/assets/PhDeviceMobile-CsyA5Goi.js +14 -0
- package/dist/assets/PhDotsThree-D-k1BiYg.js +14 -0
- package/dist/assets/PhEnvelope-D8kzeNox.js +14 -0
- package/dist/assets/PhFunnelSimple-CfQs5DAW.js +14 -0
- package/dist/assets/PhGlobe-DvmSc9_A.js +14 -0
- package/dist/assets/PhIdentificationCard-CfkZm-5K.js +14 -0
- package/dist/assets/PhImage-Cf0J2ZfJ.js +14 -0
- package/dist/assets/PhInfo-Bwi51-2X.js +14 -0
- package/dist/assets/PhLightbulb-C4FZV7Es.js +14 -0
- package/dist/assets/PhMagnifyingGlass-C9u8jSCJ.js +14 -0
- package/dist/assets/PhPaperPlaneRight-zxQVvPLX.js +14 -0
- package/dist/assets/PhPlus-C4UoW-2n.js +14 -0
- package/dist/assets/PhPower-CFyWDmgD.js +14 -0
- package/dist/assets/PhPuzzlePiece-BjoNVfST.js +14 -0
- package/dist/assets/PhQrCode-CP3tFauY.js +14 -0
- package/dist/assets/PhQuestion-wOWJBd3G.js +14 -0
- package/dist/assets/PhQuestionMark-CV0k9C0Y.js +14 -0
- package/dist/assets/PhSealCheck-vIKzREuN.js +14 -0
- package/dist/assets/PhSignOut-CxELV-i0.js +14 -0
- package/dist/assets/PhSpinner-CGDmbzUd.js +14 -0
- package/dist/assets/PhTrash-C9PD0SAt.js +14 -0
- package/dist/assets/PhUser-0sWNXQeZ.js +14 -0
- package/dist/assets/PhVault-6JTskUcC.js +14 -0
- package/dist/assets/PhWarning-CoKs3gz6.js +14 -0
- package/dist/assets/PhWarningCircle-BXHw1fCt.js +14 -0
- package/dist/assets/PhX-DX0SFIqC.js +14 -0
- package/dist/assets/PhoneIcon-mqxUi40U.js +1 -0
- package/dist/assets/PinInput-DbZ0b1i1-CkvWEG0R.js +247 -0
- package/dist/assets/PrivyPluginContext-DA-yS5vO-CDgvyHSu.js +1 -0
- package/dist/assets/QrCode-CpGkVlXb-BvtkZ_GW.js +22 -0
- package/dist/assets/RecoveryOAuthStatusScreen-CGpbUHkL-DauzUqQs.js +1 -0
- package/dist/assets/RecoveryPasswordCreateScreen-Dr_WQf6A-BFoYHPOa.js +1 -0
- package/dist/assets/RecoverySelectionScreen-CagonGs_-D1LLtufh.js +7 -0
- package/dist/assets/SIWXUtil-CB3piUiD.js +12 -0
- package/dist/assets/Screen-DMmH56yL-BONUk9MS.js +175 -0
- package/dist/assets/ScreenHeader-CHmc4-Lu-Cwialz2C.js +31 -0
- package/dist/assets/ScreenLayout-DTsWfKKs-gf6mEESm.js +1 -0
- package/dist/assets/SelectSourceAsset-CXcAyH34-CrQc2CvF.js +140 -0
- package/dist/assets/SetAutomaticRecoveryScreen-Dz6S1LST-DxxI7aBI.js +14 -0
- package/dist/assets/SetWalletPasswordForm-B3EVuPZv-8w0PfIqr.js +11 -0
- package/dist/assets/ShieldCheckIcon-B5byLL0q.js +1 -0
- package/dist/assets/SignRequestScreen-ipPnPIlP-DjlwqB37.js +26 -0
- package/dist/assets/StackedContainer-B2vaEl56-CSWVo6_P.js +24 -0
- package/dist/assets/StandardSignAndSendTransactionScreen-DPcArlC7-uI27tguH.js +20 -0
- package/dist/assets/Subtitle-CV-2yKE4-BaRxbHL7.js +13 -0
- package/dist/assets/TelegramAuthScreen-Bb_tyqBP-BSuvScW6.js +1 -0
- package/dist/assets/Title-BnzYV3Is-ByrLkU4J.js +7 -0
- package/dist/assets/TodoList-DnyULl18-DcjnXpJH.js +36 -0
- package/dist/assets/TransactionDetails-BkfhYtAg-DtmWhXP3.js +109 -0
- package/dist/assets/TransactionErrorView-DLbrU4bp-DYe09cVy.js +178 -0
- package/dist/assets/TransferFromWalletScreen-DTZSqDtC-CXT4q9D4.js +31 -0
- package/dist/assets/TransferOrBridgeLoadingScreen-DUbPtRQe-BweKnV9Z.js +6 -0
- package/dist/assets/TurnstileWrapper-BmL4TDJu-C1ZljqAH.js +1 -0
- package/dist/assets/UpdateEmailScreen-LL6semse-BygwSi8c.js +1 -0
- package/dist/assets/UpdatePhoneScreen-CS7n7kwA-DN4yaYoN.js +1 -0
- package/dist/assets/UserLimitReachedScreen-Cq4YnJkA-BrSxSBdW.js +1 -0
- package/dist/assets/Value-DTgR824E-B7IXbyVg.js +27 -0
- package/dist/assets/WalletCards-DH1rqayz-CT6JT__W.js +1 -0
- package/dist/assets/WalletIcon-XKzVUAjE.js +1 -0
- package/dist/assets/WalletInfoCard-BpO3gP5Y-IumlKDdQ.js +29 -0
- package/dist/assets/WalletInterstitialScreen-CZboB6Va-DJlEjs_V.js +1 -0
- package/dist/assets/WalletLink-7Vc0Y1tZ-TJACjVN6.js +20 -0
- package/dist/assets/WalletOverflowButton-BsG-fdaJ-CfA-DNtB.js +1 -0
- package/dist/assets/WarningBanner-ZZqCEtZK-DZXanQlM.js +21 -0
- package/dist/assets/_esm-Diwx42KJ.js +8 -0
- package/dist/assets/analytics-mkkvFRju-BRBcadka.js +1 -0
- package/dist/assets/basic-CodwVTu4.js +1575 -0
- package/dist/assets/capitalizeFirstLetter-DmLYqXsO-DtOXx-2n.js +1 -0
- package/dist/assets/ccip-C3Vjk59S.js +32 -0
- package/dist/assets/ccip-D33NgLUV.js +1 -0
- package/dist/assets/check-BM01T5vi.js +1 -0
- package/dist/assets/chevron-down-C6zww19L.js +1 -0
- package/dist/assets/circle-alert-CU29J06e.js +1 -0
- package/dist/assets/circle-check-big-BR2wXS_n.js +1 -0
- package/dist/assets/circle-x-DUmAAGJw.js +1 -0
- package/dist/assets/context-xV99-GKt-D_PAQTXr.js +1 -0
- package/dist/assets/copy-BkA8KqAF.js +1 -0
- package/dist/assets/core-DJhku8Ql.js +2 -0
- package/dist/assets/createLucideIcon-DmNNZQFn.js +1 -0
- package/dist/assets/credit-card-Dc2lSkjL.js +1 -0
- package/dist/assets/dijkstra-BsSV2JU0.js +1 -0
- package/dist/assets/dist-Cm7pNAtL.js +1 -0
- package/dist/assets/dist-CoS6E-3x.js +1 -0
- package/dist/assets/dist-D03ChgcR.js +16 -0
- package/dist/assets/dist-Dl07uGq1.js +1 -0
- package/dist/assets/errors-DRgCdgfK-CJpKdU03.js +1 -0
- package/dist/assets/esm-C3DslVJx.js +1 -0
- package/dist/assets/esm-CY8oIzLS.js +36 -0
- package/dist/assets/esm-Ci1ogKuK.js +1 -0
- package/dist/assets/esm-DJNUAQDg.js +1 -0
- package/dist/assets/ethers-DKNnmkib-BCpmt8uR.js +1 -0
- package/dist/assets/eventemitter3-BB9OE-nf.js +1 -0
- package/dist/assets/events-context-BJ75xIIf-CYNYb_Ky.js +1 -0
- package/dist/assets/external-link-CX89hR89.js +1 -0
- package/dist/assets/farcaster-DPlSjvF5-fDPVMv4F.js +1 -0
- package/dist/assets/features-BLHkjJUy.js +2 -0
- package/dist/assets/fingerprint-pattern-Cp7j1QKS.js +1 -0
- package/dist/assets/floating-ui.react-Cw-d0Rmp.js +1 -0
- package/dist/assets/floating-ui.react-dom-CvVHChFs.js +1 -0
- package/dist/assets/formatErc20TokenAmount-BuPk9xcy-BVqOKQif.js +1 -0
- package/dist/assets/get-entropy-details-for-user-Bq7nAeEf-BxiiqenT.js +1 -0
- package/dist/assets/getChainName-DjpPdUSc-DUyKDrnp.js +1 -0
- package/dist/assets/getErc20Balance-DHgWH7_1-D498CggM.js +1 -0
- package/dist/assets/getErc20TokenInfo-DluFoVaC-BT8pxO6f.js +1 -0
- package/dist/assets/getFormattedUsdFromLamports-De3U9GlO-Gx4_wxON.js +1 -0
- package/dist/assets/getUsdcMintAddress-BVgm9GRo-r2UnDeEy.js +1 -0
- package/dist/assets/hmac-D_yamlhz.js +1 -0
- package/dist/assets/hooks.module-QanQLMCy.js +1 -0
- package/dist/assets/hourglass-Cg3o4_cb.js +1 -0
- package/dist/assets/id-UqEwL2BI-DBaJPjJB.js +1 -0
- package/dist/assets/index-BCRY02zL.js +77 -0
- package/dist/assets/index-BKK46WdR-CIT1mGom.js +12 -0
- package/dist/assets/index-CNRa7QGv.css +2 -0
- package/dist/assets/index-CWARkn2w-Bfi1vKEt.js +61 -0
- package/dist/assets/index-DkRtfMoa-7oM5LZg8.js +438 -0
- package/dist/assets/index-DmwSQBu2-DJjTbL_B.js +1 -0
- package/dist/assets/index-wHxkX697-DiHUiKHG.js +1 -0
- package/dist/assets/index.es-CwXtBCnD.js +4 -0
- package/dist/assets/isAddress-C6_gPDNS.js +2 -0
- package/dist/assets/jsx-runtime-CMaQg7dW.js +1 -0
- package/dist/assets/lib-bp6F03Um.js +1 -0
- package/dist/assets/localBatchGatewayRequest-yR_7m5UB.js +32 -0
- package/dist/assets/lock-Dbw4M4hN.js +1 -0
- package/dist/assets/mail-BCVv02Hb.js +1 -0
- package/dist/assets/modal-context-2Nf1WTbJ-CkR760DI.js +1 -0
- package/dist/assets/ofetch.CWycOUEr-CHp-crOQ.js +1 -0
- package/dist/assets/p256-B1d5Y6sM.js +1 -0
- package/dist/assets/parseEther-D_FKLPQO.js +1 -0
- package/dist/assets/pkce-B0PpK2pd-CkbNVGiy.js +1 -0
- package/dist/assets/preload-helper-QurRbaCr.js +2 -0
- package/dist/assets/prepareAuthorization-hDX99ycX.js +1 -0
- package/dist/assets/privy-context-i6NfqAl1-BONGHL94.js +1 -0
- package/dist/assets/property-DuZ9DLP4.js +3 -0
- package/dist/assets/react-DLzuq_tL.js +1 -0
- package/dist/assets/react-auth-sHnipzbS.js +1 -0
- package/dist/assets/react-dom-ChmAq1X2.js +1 -0
- package/dist/assets/reservoir-B7XIq5qj-j-r1ULqP.js +1 -0
- package/dist/assets/rolldown-runtime-C_s2cVnS.js +1 -0
- package/dist/assets/safe-url-D7SRPu33-CkMedGro.js +1 -0
- package/dist/assets/secp256k1-C8Ph-XiD.js +1 -0
- package/dist/assets/secp256k1-DZXeCH9F.js +1 -0
- package/dist/assets/sha256-fChkrcNS.js +1 -0
- package/dist/assets/sha3-D7MpjpcL.js +1 -0
- package/dist/assets/shared-DEkT-Gv3-DoqdOiYl.js +193 -0
- package/dist/assets/shared-FM0rljBt-B2Y0CoZ4.js +21 -0
- package/dist/assets/shouldProceedtoEmbeddedWalletCreationFlow-DDzHjOUJ-D78LT0Ws.js +1 -0
- package/dist/assets/simulateTransaction-BM0su-14-DKYYx4Yu.js +1 -0
- package/dist/assets/smartphone-BYDnV9zT.js +1 -0
- package/dist/assets/src-Dxu8F9ei.js +1 -0
- package/dist/assets/storage-j7ai9Sne-D8mWN3Z2.js +9 -0
- package/dist/assets/stripe.esm-BCW9KcRF.js +2 -0
- package/dist/assets/styles-BsotlekN-of63S6Pp.js +9 -0
- package/dist/assets/styles-C9oLwuTf-BrU3WqQp.js +92 -0
- package/dist/assets/styles-DVyDvTdj-BRvzvs97.js +74 -0
- package/dist/assets/styles-tjTwTW2h-9GCNH_Dh.js +164 -0
- package/dist/assets/telegram-B-JqnkqZ-BVmFrRSR.js +1 -0
- package/dist/assets/to-ui-error-CD8Q_l7P-BW6keC5U.js +4 -0
- package/dist/assets/toViemAccount-BE0ZbZYx-BqW9Bqj8.js +14 -0
- package/dist/assets/transaction-BNTP-bFm-M5tJx8vY.js +1 -0
- package/dist/assets/transfer-6YztDh-t-BVQkTvG-.js +1 -0
- package/dist/assets/triangle-alert-BjGbSItA.js +1 -0
- package/dist/assets/twitch-5IOe4sIQ--IPFzphL.js +1 -0
- package/dist/assets/use-deposit-address-za6ZBYoS-z0C8GF90.js +1 -0
- package/dist/assets/useActiveWallet-D3PAxAaJ-BVwosGzn.js +123 -0
- package/dist/assets/useGetSolPrice-x7gfUIHJ-CChrTtVQ.js +1 -0
- package/dist/assets/useGetTokenPrice-B9Z2p9XG-Bu19_6lM.js +1 -0
- package/dist/assets/useI18n-C0rfdPEH-DoMbAOal.js +1 -0
- package/dist/assets/usePrivy-DXAqHE25-CdUu2aK0.js +1 -0
- package/dist/assets/useWalletBalance-D47dI-xh-DKp-JCOX.js +1 -0
- package/dist/assets/utils-De7E53Fk.js +1 -0
- package/dist/assets/utils-oVEYY1QK.js +1 -0
- package/dist/assets/w3m-modal-CI7dmrlk.js +1174 -0
- package/dist/assets/wallet-BbJaOyCZ.js +1 -0
- package/dist/assets/wallet-connect-MWSDFRmF-tGAmUa5S.js +1 -0
- package/dist/assets/wui-ux-by-reown-Bl01NIb8.js +1147 -0
- package/dist/assets/x-DgidrGFV.js +1 -0
- package/dist/crewai-banner.png +0 -0
- package/dist/crewai-logo.svg +11 -0
- package/dist/crewai-mark.png +0 -0
- package/dist/crewai-mark.svg +10 -0
- package/dist/favicon.ico +0 -0
- package/dist/index.html +85 -0
- package/package.json +43 -0
- package/server/main.mjs +153334 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secp256k1-C8Ph-XiD.js","assets/utils-De7E53Fk.js","assets/hmac-D_yamlhz.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{o as e,t}from"./rolldown-runtime-C_s2cVnS.js";import{t as n}from"./preload-helper-QurRbaCr.js";import{t as r}from"./sha3-D7MpjpcL.js";import{t as i}from"./esm-DJNUAQDg.js";import{A as a,C as o,D as s,E as c,F as l,I as u,M as d,N as f,O as p,P as m,S as h,T as g,_,a as v,b as y,c as b,d as x,f as S,g as C,h as w,i as T,j as E,k as D,l as O,m as k,n as A,o as j,p as M,r as N,s as P,t as F,u as I,v as ee,w as L,x as te,y as ne}from"./index.es-CwXtBCnD.js";import{C as re,E as ie,M as ae,U as oe,_ as se,c as ce,d as le,g as ue,j as de,m as fe,n as pe,o as me,p as he,u as ge,w as _e,y as ve}from"./ApiController-Dm_aZs5q.js";var ye=ae({message:``,variant:`info`,open:!1}),be=re({state:ye,subscribeKey(e,t){return de(ye,e,t)},open(e,t){let{debug:n}=_e.state,{code:r,displayMessage:i,debugMessage:a}=e;i&&n&&(ye.message=i,ye.variant=t,ye.open=!0),a&&console.error(typeof a==`function`?a():a,r?{code:r}:void 0)},warn(e,t,n){ye.open=!0,ye.message=e,ye.variant=`warning`,t&&console.warn(t,n)},close(){ye.open=!1,ye.message=``,ye.variant=`info`}}),xe=t(((e,t)=>{var n=_();t.exports=o;var r=w().console||{},i={mapHttpRequest:g,mapHttpResponse:g,wrapRequestSerializer:v,wrapResponseSerializer:v,wrapErrorSerializer:v,req:g,res:g,err:m};function a(e,t){return Array.isArray(e)?e.filter(function(e){return e!==`!stdSerializers.err`}):e===!0&&Object.keys(t)}function o(e){e||={},e.browser=e.browser||{};let t=e.browser.transmit;if(t&&typeof t.send!=`function`)throw Error(`pino: transmit option must have a send function`);let n=e.browser.write||r;e.browser.write&&(e.browser.asObject=!0);let i=e.serializers||{},c=a(e.browser.serialize,i),l=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf(`!stdSerializers.err`)>-1&&(l=!1);let f=[`error`,`fatal`,`warn`,`info`,`debug`,`trace`];typeof n==`function`&&(n.error=n.fatal=n.warn=n.info=n.debug=n.trace=n),e.enabled===!1&&(e.level=`silent`);let m=e.level||`info`,g=Object.create(n);g.log||=y,Object.defineProperty(g,"levelVal",{get:v}),Object.defineProperty(g,"level",{get:b,set:x});let _={transmit:t,serialize:c,asObject:e.browser.asObject,levels:f,timestamp:h(e)};g.levels=o.levels,g.level=m,g.setMaxListeners=g.getMaxListeners=g.emit=g.addListener=g.on=g.prependListener=g.once=g.prependOnceListener=g.removeListener=g.removeAllListeners=g.listeners=g.listenerCount=g.eventNames=g.write=g.flush=y,g.serializers=i,g._serialize=c,g._stdErrSerialize=l,g.child=S,t&&(g._logEvent=p());function v(){return this.level===`silent`?1/0:this.levels.values[this.level]}function b(){return this._level}function x(e){if(e!==`silent`&&!this.levels.values[e])throw Error(`unknown level `+e);this._level=e,s(_,g,`error`,`log`),s(_,g,`fatal`,`error`),s(_,g,`warn`,`error`),s(_,g,`info`,`log`),s(_,g,`debug`,`log`),s(_,g,`trace`,`log`)}function S(n,r){if(!n)throw Error(`missing bindings for child Pino`);r||={},c&&n.serializers&&(r.serializers=n.serializers);let a=r.serializers;if(c&&a){var o=Object.assign({},i,a),s=e.browser.serialize===!0?Object.keys(o):c;delete n.serializers,u([n],s,o,this._stdErrSerialize)}function l(e){this._childLevel=(e._childLevel|0)+1,this.error=d(e,n,`error`),this.fatal=d(e,n,`fatal`),this.warn=d(e,n,`warn`),this.info=d(e,n,`info`),this.debug=d(e,n,`debug`),this.trace=d(e,n,`trace`),o&&(this.serializers=o,this._serialize=s),t&&(this._logEvent=p([].concat(e._logEvent.bindings,n)))}return l.prototype=this,new l(this)}return g}o.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:`trace`,20:`debug`,30:`info`,40:`warn`,50:`error`,60:`fatal`}},o.stdSerializers=i,o.stdTimeFunctions=Object.assign({},{nullTime:b,epochTime:x,unixTime:S,isoTime:C});function s(e,t,n,i){let a=Object.getPrototypeOf(t);t[n]=t.levelVal>t.levels.values[n]?y:a[n]?a[n]:r[n]||r[i]||y,c(e,t,n)}function c(e,t,n){(e.transmit||t[n]!==y)&&(t[n]=(function(i){return function(){let a=e.timestamp(),s=Array(arguments.length),c=Object.getPrototypeOf&&Object.getPrototypeOf(this)===r?r:this;for(var d=0;d<s.length;d++)s[d]=arguments[d];if(e.serialize&&!e.asObject&&u(s,this._serialize,this.serializers,this._stdErrSerialize),e.asObject?i.call(c,l(this,n,s,a)):i.apply(c,s),e.transmit){let r=e.transmit.level||t.level,i=o.levels.values[r],c=o.levels.values[n];if(c<i)return;f(this,{ts:a,methodLevel:n,methodValue:c,transmitLevel:r,transmitValue:o.levels.values[e.transmit.level||t.level],send:e.transmit.send,val:t.levelVal},s)}}})(t[n]))}function l(e,t,r,i){e._serialize&&u(r,e._serialize,e.serializers,e._stdErrSerialize);let a=r.slice(),s=a[0],c={};i&&(c.time=i),c.level=o.levels.values[t];let l=(e._childLevel|0)+1;if(l<1&&(l=1),typeof s==`object`&&s){for(;l--&&typeof a[0]==`object`;)Object.assign(c,a.shift());s=a.length?n(a.shift(),a):void 0}else typeof s==`string`&&(s=n(a.shift(),a));return s!==void 0&&(c.msg=s),c}function u(e,t,n,r){for(let i in e)if(r&&e[i]instanceof Error)e[i]=o.stdSerializers.err(e[i]);else if(typeof e[i]==`object`&&!Array.isArray(e[i]))for(let r in e[i])t&&t.indexOf(r)>-1&&r in n&&(e[i][r]=n[r](e[i][r]))}function d(e,t,n){return function(){let r=Array(1+arguments.length);r[0]=t;for(var i=1;i<r.length;i++)r[i]=arguments[i-1];return e[n].apply(this,r)}}function f(e,t,n){let r=t.send,i=t.ts,a=t.methodLevel,o=t.methodValue,s=t.val,c=e._logEvent.bindings;u(n,e._serialize||Object.keys(e.serializers),e.serializers,e._stdErrSerialize===void 0||e._stdErrSerialize),e._logEvent.ts=i,e._logEvent.messages=n.filter(function(e){return c.indexOf(e)===-1}),e._logEvent.level.label=a,e._logEvent.level.value=o,r(a,e._logEvent,s),e._logEvent=p(c)}function p(e){return{ts:0,messages:[],bindings:e||[],level:{label:``,value:0}}}function m(e){let t={type:e.constructor.name,msg:e.message,stack:e.stack};for(let n in e)t[n]===void 0&&(t[n]=e[n]);return t}function h(e){return typeof e.timestamp==`function`?e.timestamp:e.timestamp===!1?b:x}function g(){return{}}function v(e){return e}function y(){}function b(){return!1}function x(){return Date.now()}function S(){return Math.round(Date.now()/1e3)}function C(){return new Date(Date.now()).toISOString()}function w(){function e(e){return e!==void 0&&e}try{return typeof globalThis<`u`||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch{return e(self)||e(window)||e(this)||{}}}})),Se=e(u()),Ce=e(xe()),we={level:`info`},Te=`custom_context`,Ee=1024e3,De=class{constructor(e){this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}},Oe=class{constructor(e){this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){let t=new De(e);if(t.size>this.maxSizeInBytes)throw Error(`[LinkedList] Value too big to insert into list: ${e} with size ${t.size}`);for(;this.size+t.size>this.maxSizeInBytes;)this.shift();this.head?(this.tail&&(this.tail.next=t),this.tail=t):(this.head=t,this.tail=t),this.lengthInNodes++,this.sizeInBytes+=t.size}shift(){if(!this.head)return;let e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){let e=[],t=this.head;for(;t!==null;)e.push(t.value),t=t.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};let t=e.value;return e=e.next,{done:!1,value:t}}}}},ke=class{constructor(e,t=Ee){this.level=e??`error`,this.levelValue=Ce.levels.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new Oe(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===Ce.levels.values.error?console.error(e):t===Ce.levels.values.warn?console.warn(e):t===Ce.levels.values.debug?console.debug(e):t===Ce.levels.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(p({timestamp:new Date().toISOString(),log:e}));let t=typeof e==`string`?JSON.parse(e).level:e.level;t>=this.levelValue&&this.forwardToConsole(e,t)}getLogs(){return this.logs}clearLogs(){this.logs=new Oe(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){let t=this.getLogArray();return t.push(p({extraMetadata:e})),new Blob(t,{type:`application/json`})}},Ae=class{constructor(e,t=Ee){this.baseChunkLogger=new ke(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){let t=URL.createObjectURL(this.logsToBlob(e)),n=document.createElement(`a`);n.href=t,n.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t)}},je=class{constructor(e,t=Ee){this.baseChunkLogger=new ke(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}},Me=Object.defineProperty,Ne=Object.defineProperties,Pe=Object.getOwnPropertyDescriptors,Fe=Object.getOwnPropertySymbols,Ie=Object.prototype.hasOwnProperty,Le=Object.prototype.propertyIsEnumerable,Re=(e,t,n)=>t in e?Me(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ze=(e,t)=>{for(var n in t||={})Ie.call(t,n)&&Re(e,n,t[n]);if(Fe)for(var n of Fe(t))Le.call(t,n)&&Re(e,n,t[n]);return e},Be=(e,t)=>Ne(e,Pe(t));function Ve(e){return Be(ze({},e),{level:e?.level||we.level})}function He(e,t=Te){return e[t]||``}function Ue(e,t,n=Te){return e[n]=t,e}function We(e,t=Te){let n=``;return n=typeof e.bindings>`u`?He(e,t):e.bindings().context||``,n}function Ge(e,t,n=Te){let r=We(e,n);return r.trim()?`${r}/${t}`:t}function Ke(e,t,n=Te){let r=Ge(e,t,n);return Ue(e.child({context:r}),r,n)}function qe(e){let t=new Ae(e.opts?.level,e.maxSizeInBytes);return{logger:(0,Ce.default)(Be(ze({},e.opts),{level:`trace`,browser:Be(ze({},e.opts?.browser),{write:e=>t.write(e)})})),chunkLoggerController:t}}function Je(e){let t=new je(e.opts?.level,e.maxSizeInBytes);return{logger:(0,Ce.default)(Be(ze({},e.opts),{level:`trace`}),t),chunkLoggerController:t}}function Ye(e){return typeof e.loggerOverride<`u`&&typeof e.loggerOverride!=`string`?{logger:e.loggerOverride,chunkLoggerController:null}:typeof window<`u`?qe(e):Je(e)}var Xe=Object.defineProperty,Ze=(e,t,n)=>t in e?Xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qe=(e,t,n)=>Ze(e,typeof t==`symbol`?t:t+``,n),$e=class extends C{constructor(e){super(),this.opts=e,Qe(this,`protocol`,`wc`),Qe(this,`version`,2)}},et=Object.defineProperty,tt=(e,t,n)=>t in e?et(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,nt=(e,t,n)=>tt(e,typeof t==`symbol`?t:t+``,n),rt=class extends C{constructor(e,t){super(),this.core=e,this.logger=t,nt(this,`records`,new Map)}},it=class{constructor(e,t){this.logger=e,this.core=t}},at=class extends C{constructor(e,t){super(),this.relayer=e,this.logger=t}},ot=class extends C{constructor(e){super()}},st=class{constructor(e,t,n,r){this.core=e,this.logger=t,this.name=n}},ct=class extends C{constructor(e,t){super(),this.relayer=e,this.logger=t}},lt=class extends C{constructor(e,t){super(),this.core=e,this.logger=t}},ut=class{constructor(e,t,n){this.core=e,this.logger=t,this.store=n}},dt=class{constructor(e,t){this.projectId=e,this.logger=t}},ft=class{constructor(e,t,n){this.core=e,this.logger=t,this.telemetryEnabled=n}},pt=Object.defineProperty,mt=(e,t,n)=>t in e?pt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ht=(e,t,n)=>mt(e,typeof t==`symbol`?t:t+``,n),gt=class{constructor(e){this.opts=e,ht(this,`protocol`,`wc`),ht(this,`version`,2)}},_t=class{constructor(e){this.client=e}};function vt(e,{strict:t=!0}={}){return!e||typeof e!=`string`?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith(`0x`)}function yt(e){return vt(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}var bt=`2.36.0`,xt={getDocsUrl:({docsBaseUrl:e,docsPath:t=``,docsSlug:n})=>t?`${e??`https://viem.sh`}${t}${n?`#${n}`:``}`:void 0,version:`viem@${bt}`},St=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=xt.getDocsUrl?.({...n,docsPath:i}),o=[t||`An error occurred.`,``,...n.metaMessages?[...n.metaMessages,``]:[],...a?[`Docs: ${a}`]:[],...r?[`Details: ${r}`]:[],...xt.version?[`Version: ${xt.version}`]:[]].join(`
|
|
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=bt}walk(e){return Ct(this,e)}};function Ct(e,t){return t?.(e)?e:e&&typeof e==`object`&&`cause`in e&&e.cause!==void 0?Ct(e.cause,t):t?null:e}var wt=class extends St{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 Tt(e,{dir:t,size:n=32}={}){return typeof e==`string`?Et(e,{dir:t,size:n}):Dt(e,{dir:t,size:n})}function Et(e,{dir:t,size:n=32}={}){if(n===null)return e;let r=e.replace(`0x`,``);if(r.length>n*2)throw new wt({size:Math.ceil(r.length/2),targetSize:n,type:`hex`});return`0x${r[t===`right`?`padEnd`:`padStart`](n*2,`0`)}`}function Dt(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new wt({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 Ot=class extends St{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`})}},kt=class extends St{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:`SizeOverflowError`})}};function At(e,{size:t}){if(yt(e)>t)throw new kt({givenSize:yt(e),maxSize:t})}function jt(e,t={}){let{signed:n}=t;t.size&&At(e,{size:t.size});let r=BigInt(e);if(!n)return r;let i=(e.length-2)/2;return r<=(1n<<BigInt(i)*8n-1n)-1n?r:r-BigInt(`0x${`f`.padStart(i*2,`f`)}`)-1n}function Mt(e,t={}){return Number(jt(e,t))}var Nt=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function Pt(e,t={}){return typeof e==`number`||typeof e==`bigint`?Lt(e,t):typeof e==`string`?zt(e,t):typeof e==`boolean`?Ft(e,t):It(e,t)}function Ft(e,t={}){let n=`0x${Number(e)}`;return typeof t.size==`number`?(At(n,{size:t.size}),Tt(n,{size:t.size})):n}function It(e,t={}){let n=``;for(let t=0;t<e.length;t++)n+=Nt[e[t]];let r=`0x${n}`;return typeof t.size==`number`?(At(r,{size:t.size}),Tt(r,{dir:`right`,size:t.size})):r}function Lt(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 Ot({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?Tt(s,{size:r}):s}var Rt=new TextEncoder;function zt(e,t={}){return It(Rt.encode(e),t)}var Bt=new TextEncoder;function Vt(e,t={}){return typeof e==`number`||typeof e==`bigint`?Kt(e,t):typeof e==`boolean`?Ht(e,t):vt(e)?Gt(e,t):qt(e,t)}function Ht(e,t={}){let n=new Uint8Array(1);return n[0]=Number(e),typeof t.size==`number`?(At(n,{size:t.size}),Tt(n,{size:t.size})):n}var Ut={zero:48,nine:57,A:65,F:70,a:97,f:102};function Wt(e){if(e>=Ut.zero&&e<=Ut.nine)return e-Ut.zero;if(e>=Ut.A&&e<=Ut.F)return e-(Ut.A-10);if(e>=Ut.a&&e<=Ut.f)return e-(Ut.a-10)}function Gt(e,t={}){let n=e;t.size&&(At(n,{size:t.size}),n=Tt(n,{dir:`right`,size:t.size}));let r=n.slice(2);r.length%2&&(r=`0${r}`);let i=r.length/2,a=new Uint8Array(i);for(let e=0,t=0;e<i;e++){let n=Wt(r.charCodeAt(t++)),i=Wt(r.charCodeAt(t++));if(n===void 0||i===void 0)throw new St(`Invalid byte sequence ("${r[t-2]}${r[t-1]}" in "${r}").`);a[e]=n*16+i}return a}function Kt(e,t){return Gt(Lt(e,t))}function qt(e,t={}){let n=Bt.encode(e);return typeof t.size==`number`?(At(n,{size:t.size}),Tt(n,{dir:`right`,size:t.size})):n}function Jt(e,t){let n=t||`hex`,i=r(vt(e,{strict:!1})?Vt(e):e);return n===`bytes`?i:Pt(i)}var Yt=new 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)&&t!==void 0&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){let e=this.keys().next().value;e&&this.delete(e)}return this}}(8192);function Xt(e,t){if(Yt.has(`${e}.${t}`))return Yt.get(`${e}.${t}`);let n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),r=Jt(qt(n),`bytes`),i=(t?n.substring(`${t}0x`.length):n).split(``);for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&i[e]&&(i[e]=i[e].toUpperCase()),(r[e>>1]&15)>=8&&i[e+1]&&(i[e+1]=i[e+1].toUpperCase());let a=`0x${i.join(``)}`;return Yt.set(`${e}.${t}`,a),a}function Zt(e){return Xt(`0x${Jt(`0x${e.substring(4)}`).substring(26)}`)}async function Qt({hash:e,signature:t}){let r=vt(e)?e:Pt(e),{secp256k1:i}=await n(async()=>{let{secp256k1:e}=await import(`./secp256k1-C8Ph-XiD.js`);return{secp256k1:e}},__vite__mapDeps([0,1,2]));return`0x${(()=>{if(typeof t==`object`&&`r`in t&&`s`in t){let{r:e,s:n,v:r,yParity:a}=t,o=$t(Number(a??r));return new i.Signature(jt(e),jt(n)).addRecoveryBit(o)}let e=vt(t)?t:Pt(t);if(yt(e)!==65)throw Error(`invalid signature length`);let n=$t(Mt(`0x${e.slice(130)}`));return i.Signature.fromCompact(e.substring(2,130)).addRecoveryBit(n)})().recoverPublicKey(r.substring(2)).toHex(!1)}`}function $t(e){if(e===0||e===1)return e;if(e===27)return 0;if(e===28)return 1;throw Error(`Invalid yParityOrV value`)}async function en({hash:e,signature:t}){return Zt(await Qt({hash:e,signature:t}))}var R=m(),tn=f(),nn=d(),rn=ee(),an=`:`;function on(e){let[t,n]=e.split(an);return{namespace:t,reference:n}}function sn(e,t){return e.includes(`:`)?[e]:t.chains||[]}var cn=Object.defineProperty,ln=Object.defineProperties,un=Object.getOwnPropertyDescriptors,dn=Object.getOwnPropertySymbols,fn=Object.prototype.hasOwnProperty,pn=Object.prototype.propertyIsEnumerable,mn=(e,t,n)=>t in e?cn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,hn=(e,t)=>{for(var n in t||={})fn.call(t,n)&&mn(e,n,t[n]);if(dn)for(var n of dn(t))pn.call(t,n)&&mn(e,n,t[n]);return e},gn=(e,t)=>ln(e,un(t)),_n=(e,t,n)=>mn(e,typeof t==`symbol`?t:t+``,n),vn={reactNative:`react-native`,node:`node`,browser:`browser`,unknown:`unknown`};function yn(){return typeof process<`u`&&typeof process.versions<`u`&&typeof process.versions.node<`u`}function bn(){return!(0,tn.getDocument)()&&!!(0,tn.getNavigator)()&&navigator.product===`ReactNative`}function xn(){return bn()&&typeof global<`u`&&typeof(global==null?void 0:global.Platform)<`u`&&(global==null?void 0:global.Platform.OS)===`android`}function Sn(){return bn()&&typeof global<`u`&&typeof(global==null?void 0:global.Platform)<`u`&&(global==null?void 0:global.Platform.OS)===`ios`}function Cn(){return!yn()&&!!(0,tn.getNavigator)()&&!!(0,tn.getDocument)()}function wn(){return bn()?vn.reactNative:yn()?vn.node:Cn()?vn.browser:vn.unknown}function Tn(){try{return bn()&&typeof global<`u`&&typeof(global==null?void 0:global.Application)<`u`?global.Application?.applicationId:void 0}catch{return}}function En(e,t){let n=new URLSearchParams(e);return Object.entries(t).sort(([e],[t])=>e.localeCompare(t)).forEach(([e,t])=>{t!=null&&n.set(e,String(t))}),n.toString()}function Dn(e){var t,n;let r=On();try{return e!=null&&e.url&&r.url&&new URL(e.url).host!==new URL(r.url).host&&(console.warn(`The configured WalletConnect 'metadata.url':${e.url} differs from the actual page url:${r.url}. This is probably unintended and can lead to issues.`),e.url=r.url),(t=e?.icons)!=null&&t.length&&e.icons.length>0&&(e.icons=e.icons.filter(e=>e!==``)),gn(hn(hn({},r),e),{url:e?.url||r.url,name:e?.name||r.name,description:e?.description||r.description,icons:(n=e?.icons)!=null&&n.length&&e.icons.length>0?e.icons:r.icons})}catch(t){return console.warn(`Error populating app metadata`,t),e||r}}function On(){return(0,nn.getWindowMetadata)()||{name:``,description:``,url:``,icons:[``]}}function kn(){if(wn()===vn.reactNative&&typeof global<`u`&&typeof(global==null?void 0:global.Platform)<`u`){let{OS:e,Version:t}=global.Platform;return[e,t].join(`-`)}let e=l();if(e===null)return`unknown`;let t=e.os?e.os.replace(` `,``).toLowerCase():`unknown`;return e.type===`browser`?[t,e.name,e.version].join(`-`):[t,e.version].join(`-`)}function An(){let e=wn();return e===vn.browser?[e,(0,tn.getLocation)()?.host||`unknown`].join(`:`):e}function jn(e,t,n){let r=kn(),i=An();return[[e,t].join(`-`),[`js`,n].join(`-`),r,i].join(`/`)}function Mn({protocol:e,version:t,relayUrl:n,sdkVersion:r,auth:i,projectId:a,useOnCloseEvent:o,bundleId:s,packageName:c}){let l=n.split(`?`),u={auth:i,ua:jn(e,t,r),projectId:a,useOnCloseEvent:o||void 0,packageName:c||void 0,bundleId:s||void 0},d=En(l[1]||``,u);return l[0]+`?`+d}function Nn(e,t){return e.filter(e=>t.includes(e)).length===e.length}function Pn(e){return Object.fromEntries(e.entries())}function Fn(e){return new Map(Object.entries(e))}function In(e=R.FIVE_MINUTES,t){let n=(0,R.toMiliseconds)(e||R.FIVE_MINUTES),r,i,a,o;return{resolve:e=>{a&&r&&(clearTimeout(a),r(e),o=Promise.resolve(e))},reject:e=>{a&&i&&(clearTimeout(a),i(e))},done:()=>new Promise((e,s)=>{if(o)return e(o);a=setTimeout(()=>{let e=Error(t);o=Promise.reject(e),s(e)},n),r=e,i=s})}}function Ln(e,t,n){return new Promise(async(r,i)=>{let a=setTimeout(()=>i(Error(n)),t);try{r(await e)}catch(e){i(e)}clearTimeout(a)})}function Rn(e,t){if(typeof t==`string`&&t.startsWith(`${e}:`))return t;if(e.toLowerCase()===`topic`){if(typeof t!=`string`)throw Error(`Value must be "string" for expirer target type: topic`);return`topic:${t}`}if(e.toLowerCase()===`id`){if(typeof t!=`number`)throw Error(`Value must be "number" for expirer target type: id`);return`id:${t}`}throw Error(`Unknown expirer target type: ${e}`)}function zn(e){return Rn(`topic`,e)}function Bn(e){return Rn(`id`,e)}function Vn(e){let[t,n]=e.split(`:`),r={id:void 0,topic:void 0};if(t===`topic`&&typeof n==`string`)r.topic=n;else if(t===`id`&&Number.isInteger(Number(n)))r.id=Number(n);else throw Error(`Invalid target, expected id:number or topic:string, got ${t}:${n}`);return r}function Hn(e,t){return(0,R.fromMiliseconds)((t||Date.now())+(0,R.toMiliseconds)(e))}function Un(e){return Date.now()>=(0,R.toMiliseconds)(e)}function z(e,t){return`${e}${t?`:${t}`:``}`}function Wn(e=[],t=[]){return[...new Set([...e,...t])]}async function Gn({id:e,topic:t,wcDeepLink:n}){var r;try{if(!n)return;let i=(typeof n==`string`?JSON.parse(n):n)?.href;if(typeof i!=`string`)return;let a=Kn(i,e,t),o=wn();if(o===vn.browser){if(!((r=(0,tn.getDocument)())!=null&&r.hasFocus())){console.warn(`Document does not have focus, skipping deeplink.`);return}qn(a)}else o===vn.reactNative&&typeof(global==null?void 0:global.Linking)<`u`&&await global.Linking.openURL(a)}catch(e){console.error(e)}}function Kn(e,t,n){let r=`requestId=${t}&sessionTopic=${n}`;e.endsWith(`/`)&&(e=e.slice(0,-1));let i=`${e}`;if(e.startsWith(`https://t.me`)){let t=e.includes(`?`)?`&startapp=`:`?startapp=`;i=`${i}${t}${er(r,!0)}`}else i=`${i}/wc?${r}`;return i}function qn(e){let t=`_self`;$n()?t=`_top`:(Qn()||e.startsWith(`https://`)||e.startsWith(`http://`))&&(t=`_blank`),window.open(e,t,`noreferrer noopener`)}async function Jn(e,t){let n=``;try{if(Cn()&&(n=localStorage.getItem(t),n))return n;n=await e.getItem(t)}catch(e){console.error(e)}return n}function Yn(e,t){if(!e.includes(t))return null;let n=e.split(/([&,?,=])/);return n[n.indexOf(t)+2]}function Xn(){return typeof crypto<`u`&&crypto!=null&&crypto.randomUUID?crypto.randomUUID():`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/gu,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)})}function Zn(){return typeof process<`u`&&{}.IS_VITEST===`true`}function Qn(){return typeof window<`u`&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function $n(){try{return window.self!==window.top}catch{return!1}}function er(e,t=!1){let n=Buffer.from(e).toString(`base64`);return t?n.replace(/[=]/g,``):n}function tr(e){return Buffer.from(e,`base64`).toString(`utf-8`)}function nr(e){return new Promise(t=>setTimeout(t,e))}var rr=class{constructor({limit:e}){_n(this,`limit`),_n(this,`set`),this.limit=e,this.set=new Set}add(e){if(!this.set.has(e)){if(this.set.size>=this.limit){let e=this.set.values().next().value;e&&this.set.delete(e)}this.set.add(e)}}has(e){return this.set.has(e)}},ir=BigInt(2**32-1),ar=BigInt(32);function or(e,t=!1){return t?{h:Number(e&ir),l:Number(e>>ar&ir)}:{h:Number(e>>ar&ir)|0,l:Number(e&ir)|0}}function sr(e,t=!1){let n=e.length,r=new Uint32Array(n),i=new Uint32Array(n);for(let a=0;a<n;a++){let{h:n,l:o}=or(e[a],t);[r[a],i[a]]=[n,o]}return[r,i]}var cr=(e,t,n)=>e>>>n,lr=(e,t,n)=>e<<32-n|t>>>n,ur=(e,t,n)=>e>>>n|t<<32-n,dr=(e,t,n)=>e<<32-n|t>>>n,fr=(e,t,n)=>e<<64-n|t>>>n-32,pr=(e,t,n)=>e>>>n-32|t<<64-n,mr=(e,t)=>t,hr=(e,t)=>e,gr=(e,t,n)=>e<<n|t>>>32-n,_r=(e,t,n)=>t<<n|e>>>32-n,vr=(e,t,n)=>t<<n-32|e>>>64-n,yr=(e,t,n)=>e<<n-32|t>>>64-n;function br(e,t,n,r){let i=(t>>>0)+(r>>>0);return{h:e+n+(i/2**32|0)|0,l:i|0}}var xr=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),Sr=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,Cr=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),wr=(e,t,n,r,i)=>t+n+r+i+(e/2**32|0)|0,Tr=(e,t,n,r,i)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(i>>>0),Er=(e,t,n,r,i,a)=>t+n+r+i+a+(e/2**32|0)|0,Dr=typeof globalThis==`object`&&`crypto`in globalThis?globalThis.crypto:void 0;function Or(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function kr(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function Ar(e,...t){if(!Or(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 jr(e){if(typeof e!=`function`||typeof e.create!=`function`)throw Error(`Hash should be wrapped by utils.createHasher`);kr(e.outputLen),kr(e.blockLen)}function Mr(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 Nr(e,t){Ar(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function Pr(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Fr(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Ir(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Lr(e,t){return e<<32-t|e>>>t}var Rr=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function zr(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}var Br=Rr?e=>e:e=>zr(e);function Vr(e){for(let t=0;t<e.length;t++)e[t]=zr(e[t]);return e}var Hr=Rr?e=>e:Vr,Ur=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,Wr=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function Gr(e){if(Ar(e),Ur)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=Wr[e[n]];return t}var Kr={_0:48,_9:57,A:65,F:70,a:97,f:102};function qr(e){if(e>=Kr._0&&e<=Kr._9)return e-Kr._0;if(e>=Kr.A&&e<=Kr.F)return e-(Kr.A-10);if(e>=Kr.a&&e<=Kr.f)return e-(Kr.a-10)}function Jr(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);if(Ur)return Uint8Array.fromHex(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=qr(e.charCodeAt(i)),a=qr(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 Yr(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function Xr(e){return typeof e==`string`&&(e=Yr(e)),Ar(e),e}function Zr(...e){let t=0;for(let n=0;n<e.length;n++){let r=e[n];Ar(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 Qr=class{};function $r(e){let t=t=>e().update(Xr(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function ei(e){let t=(t,n)=>e(n).update(Xr(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function ti(e=32){if(Dr&&typeof Dr.getRandomValues==`function`)return Dr.getRandomValues(new Uint8Array(e));if(Dr&&typeof Dr.randomBytes==`function`)return Uint8Array.from(Dr.randomBytes(e));throw Error(`crypto.getRandomValues must be defined`)}var ni=BigInt(0),ri=BigInt(1),ii=BigInt(2),ai=BigInt(7),oi=BigInt(256),si=BigInt(113),ci=[],li=[],ui=[];for(let e=0,t=ri,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],ci.push(2*(5*r+n)),li.push((e+1)*(e+2)/2%64);let i=ni;for(let e=0;e<7;e++)t=(t<<ri^(t>>ai)*si)%oi,t&ii&&(i^=ri<<(ri<<BigInt(e))-ri);ui.push(i)}var di=sr(ui,!0),fi=di[0],pi=di[1],mi=(e,t,n)=>n>32?vr(e,t,n):gr(e,t,n),hi=(e,t,n)=>n>32?yr(e,t,n):_r(e,t,n);function gi(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let r=(t+8)%10,i=(t+2)%10,a=n[i],o=n[i+1],s=mi(a,o,1)^n[r],c=hi(a,o,1)^n[r+1];for(let n=0;n<50;n+=10)e[t+n]^=s,e[t+n+1]^=c}let t=e[2],i=e[3];for(let n=0;n<24;n++){let r=li[n],a=mi(t,i,r),o=hi(t,i,r),s=ci[n];t=e[s],i=e[s+1],e[s]=a,e[s+1]=o}for(let t=0;t<50;t+=10){for(let r=0;r<10;r++)n[r]=e[t+r];for(let r=0;r<10;r++)e[t+r]^=~n[(r+2)%10]&n[(r+4)%10]}e[0]^=fi[r],e[1]^=pi[r]}Fr(n)}var _i=class e extends Qr{constructor(e,t,n,r=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=i,kr(n),!(0<e&&e<200))throw Error(`only keccak-f1600 function is supported`);this.state=new Uint8Array(200),this.state32=Pr(this.state)}clone(){return this._cloneInto()}keccak(){Hr(this.state32),gi(this.state32,this.rounds),Hr(this.state32),this.posOut=0,this.pos=0}update(e){Mr(this),e=Xr(e),Ar(e);let{blockLen:t,state:n}=this,r=e.length;for(let i=0;i<r;){let a=Math.min(t-this.pos,r-i);for(let t=0;t<a;t++)n[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:n,blockLen:r}=this;e[n]^=t,t&128&&n===r-1&&this.keccak(),e[r-1]^=128,this.keccak()}writeInto(e){Mr(this,!1),Ar(e),this.finish();let t=this.state,{blockLen:n}=this;for(let r=0,i=e.length;r<i;){this.posOut>=n&&this.keccak();let a=Math.min(n-this.posOut,i-r);e.set(t.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible for this instance`);return this.writeInto(e)}xof(e){return kr(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Nr(e,this),this.finished)throw Error(`digest() was already called`);return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,Fr(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:i,rounds:a,enableXOF:o}=this;return t||=new e(n,r,i,o,a),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=r,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}},vi=((e,t,n)=>$r(()=>new _i(t,e,n)))(1,136,32);function yi(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)}function bi(e,t,n){return e&t^~e&n}function xi(e,t,n){return e&t^e&n^t&n}var Si=class extends Qr{constructor(e,t,n,r){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=Ir(this.buffer)}update(e){Mr(this),e=Xr(e),Ar(e);let{view:t,buffer:n,blockLen:r}=this,i=e.length;for(let a=0;a<i;){let o=Math.min(r-this.pos,i-a);if(o===r){let t=Ir(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){Mr(this),Nr(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:r,isLE:i}=this,{pos:a}=this;t[a++]=128,Fr(this.buffer.subarray(a)),this.padOffset>r-a&&(this.process(n,0),a=0);for(let e=a;e<r;e++)t[e]=0;yi(n,r-8,BigInt(this.length*8),i),this.process(n,0);let o=Ir(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.destroyed=a,e.finished=i,e.length=r,e.pos=o,r%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}},Ci=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),wi=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Ti=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),Ei=Uint32Array.from([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]),Di=new Uint32Array(64),Oi=class extends Si{constructor(e=32){super(64,e,8,!1),this.A=Ci[0]|0,this.B=Ci[1]|0,this.C=Ci[2]|0,this.D=Ci[3]|0,this.E=Ci[4]|0,this.F=Ci[5]|0,this.G=Ci[6]|0,this.H=Ci[7]|0}get(){let{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}process(e,t){for(let n=0;n<16;n++,t+=4)Di[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=Di[e-15],n=Di[e-2],r=Lr(t,7)^Lr(t,18)^t>>>3,i=Lr(n,17)^Lr(n,19)^n>>>10;Di[e]=i+Di[e-7]+r+Di[e-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:c,H:l}=this;for(let e=0;e<64;e++){let t=Lr(o,6)^Lr(o,11)^Lr(o,25),u=l+t+bi(o,s,c)+Ei[e]+Di[e]|0,d=(Lr(n,2)^Lr(n,13)^Lr(n,22))+xi(n,r,i)|0;l=c,c=s,s=o,o=a+u|0,a=i,i=r,r=n,n=u+d|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,r,i,a,o,s,c,l)}roundClean(){Fr(Di)}destroy(){this.set(0,0,0,0,0,0,0,0),Fr(this.buffer)}},ki=sr(`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))),Ai=ki[0],ji=ki[1],Mi=new Uint32Array(80),Ni=new Uint32Array(80),Pi=class extends Si{constructor(e=64){super(128,e,16,!1),this.Ah=Ti[0]|0,this.Al=Ti[1]|0,this.Bh=Ti[2]|0,this.Bl=Ti[3]|0,this.Ch=Ti[4]|0,this.Cl=Ti[5]|0,this.Dh=Ti[6]|0,this.Dl=Ti[7]|0,this.Eh=Ti[8]|0,this.El=Ti[9]|0,this.Fh=Ti[10]|0,this.Fl=Ti[11]|0,this.Gh=Ti[12]|0,this.Gl=Ti[13]|0,this.Hh=Ti[14]|0,this.Hl=Ti[15]|0}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)Mi[n]=e.getUint32(t),Ni[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){let t=Mi[e-15]|0,n=Ni[e-15]|0,r=ur(t,n,1)^ur(t,n,8)^cr(t,n,7),i=dr(t,n,1)^dr(t,n,8)^lr(t,n,7),a=Mi[e-2]|0,o=Ni[e-2]|0,s=ur(a,o,19)^fr(a,o,61)^cr(a,o,6),c=Cr(i,dr(a,o,19)^pr(a,o,61)^lr(a,o,6),Ni[e-7],Ni[e-16]),l=wr(c,r,s,Mi[e-7],Mi[e-16]);Mi[e]=l|0,Ni[e]=c|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=ur(u,d,14)^ur(u,d,18)^fr(u,d,41),v=dr(u,d,14)^dr(u,d,18)^pr(u,d,41),y=u&f^~u&m,b=d&p^~d&h,x=Tr(_,v,b,ji[e],Ni[e]),S=Er(x,g,t,y,Ai[e],Mi[e]),C=x|0,w=ur(n,r,28)^fr(n,r,34)^fr(n,r,39),T=dr(n,r,28)^pr(n,r,34)^pr(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}=br(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=xr(C,T,D);n=Sr(O,S,w,E),r=O|0}({h:n,l:r}=br(this.Ah|0,this.Al|0,n|0,r|0)),{h:i,l:a}=br(this.Bh|0,this.Bl|0,i|0,a|0),{h:o,l:s}=br(this.Ch|0,this.Cl|0,o|0,s|0),{h:c,l}=br(this.Dh|0,this.Dl|0,c|0,l|0),{h:u,l:d}=br(this.Eh|0,this.El|0,u|0,d|0),{h:f,l:p}=br(this.Fh|0,this.Fl|0,f|0,p|0),{h:m,l:h}=br(this.Gh|0,this.Gl|0,m|0,h|0),{h:g,l:_}=br(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(Mi,Ni)}destroy(){Fr(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Fi=class extends Pi{constructor(){super(48),this.Ah=wi[0]|0,this.Al=wi[1]|0,this.Bh=wi[2]|0,this.Bl=wi[3]|0,this.Ch=wi[4]|0,this.Cl=wi[5]|0,this.Dh=wi[6]|0,this.Dl=wi[7]|0,this.Eh=wi[8]|0,this.El=wi[9]|0,this.Fh=wi[10]|0,this.Fl=wi[11]|0,this.Gh=wi[12]|0,this.Gl=wi[13]|0,this.Hh=wi[14]|0,this.Hl=wi[15]|0}},Ii=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]),Li=class extends Pi{constructor(){super(32),this.Ah=Ii[0]|0,this.Al=Ii[1]|0,this.Bh=Ii[2]|0,this.Bl=Ii[3]|0,this.Ch=Ii[4]|0,this.Cl=Ii[5]|0,this.Dh=Ii[6]|0,this.Dl=Ii[7]|0,this.Eh=Ii[8]|0,this.El=Ii[9]|0,this.Fh=Ii[10]|0,this.Fl=Ii[11]|0,this.Gh=Ii[12]|0,this.Gl=Ii[13]|0,this.Hh=Ii[14]|0,this.Hl=Ii[15]|0}},Ri=$r(()=>new Oi),zi=$r(()=>new Pi),Bi=$r(()=>new Fi),Vi=$r(()=>new Li),Hi=Uint8Array.from([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9]),Ui=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),B=new Uint32Array(32);function Wi(e,t,n,r,i,a){let o=i[a],s=i[a+1],c=B[2*e],l=B[2*e+1],u=B[2*t],d=B[2*t+1],f=B[2*n],p=B[2*n+1],m=B[2*r],h=B[2*r+1],g=xr(c,u,o);l=Sr(g,l,d,s),c=g|0,{Dh:h,Dl:m}={Dh:h^l,Dl:m^c},{Dh:h,Dl:m}={Dh:mr(h,m),Dl:hr(h)},{h:p,l:f}=br(p,f,h,m),{Bh:d,Bl:u}={Bh:d^p,Bl:u^f},{Bh:d,Bl:u}={Bh:ur(d,u,24),Bl:dr(d,u,24)},B[2*e]=c,B[2*e+1]=l,B[2*t]=u,B[2*t+1]=d,B[2*n]=f,B[2*n+1]=p,B[2*r]=m,B[2*r+1]=h}function Gi(e,t,n,r,i,a){let o=i[a],s=i[a+1],c=B[2*e],l=B[2*e+1],u=B[2*t],d=B[2*t+1],f=B[2*n],p=B[2*n+1],m=B[2*r],h=B[2*r+1],g=xr(c,u,o);l=Sr(g,l,d,s),c=g|0,{Dh:h,Dl:m}={Dh:h^l,Dl:m^c},{Dh:h,Dl:m}={Dh:ur(h,m,16),Dl:dr(h,m,16)},{h:p,l:f}=br(p,f,h,m),{Bh:d,Bl:u}={Bh:d^p,Bl:u^f},{Bh:d,Bl:u}={Bh:fr(d,u,63),Bl:pr(d,u,63)},B[2*e]=c,B[2*e+1]=l,B[2*t]=u,B[2*t+1]=d,B[2*n]=f,B[2*n+1]=p,B[2*r]=m,B[2*r+1]=h}function Ki(e,t={},n,r,i){if(kr(n),e<0||e>n)throw Error(`outputLen bigger than keyLen`);let{key:a,salt:o,personalization:s}=t;if(a!==void 0&&(a.length<1||a.length>n))throw Error(`key length must be undefined or 1..`+n);if(o!==void 0&&o.length!==r)throw Error(`salt must be undefined or `+r);if(s!==void 0&&s.length!==i)throw Error(`personalization must be undefined or `+i)}var qi=class extends Qr{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,kr(e),kr(t),this.blockLen=e,this.outputLen=t,this.buffer=new Uint8Array(e),this.buffer32=Pr(this.buffer)}update(e){Mr(this),e=Xr(e),Ar(e);let{blockLen:t,buffer:n,buffer32:r}=this,i=e.length,a=e.byteOffset,o=e.buffer;for(let s=0;s<i;){this.pos===t&&(Hr(r),this.compress(r,0,!1),Hr(r),this.pos=0);let c=Math.min(t-this.pos,i-s),l=a+s;if(c===t&&!(l%4)&&s+c<i){let e=new Uint32Array(o,l,Math.floor((i-s)/4));Hr(e);for(let n=0;s+t<i;n+=r.length,s+=t)this.length+=t,this.compress(e,n,!1);Hr(e);continue}n.set(e.subarray(s,s+c),this.pos),this.pos+=c,this.length+=c,s+=c}return this}digestInto(e){Mr(this),Nr(e,this);let{pos:t,buffer32:n}=this;this.finished=!0,Fr(this.buffer.subarray(t)),Hr(n),this.compress(n,0,!0),Hr(n);let r=Pr(e);this.get().forEach((e,t)=>r[t]=Br(e))}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){let{buffer:t,length:n,finished:r,destroyed:i,outputLen:a,pos:o}=this;return e||=new this.constructor({dkLen:a}),e.set(...this.get()),e.buffer.set(t),e.destroyed=i,e.finished=r,e.length=n,e.pos=o,e.outputLen=a,e}clone(){return this._cloneInto()}},Ji=class extends qi{constructor(e={}){let t=e.dkLen===void 0?64:e.dkLen;super(128,t),this.v0l=Ui[0]|0,this.v0h=Ui[1]|0,this.v1l=Ui[2]|0,this.v1h=Ui[3]|0,this.v2l=Ui[4]|0,this.v2h=Ui[5]|0,this.v3l=Ui[6]|0,this.v3h=Ui[7]|0,this.v4l=Ui[8]|0,this.v4h=Ui[9]|0,this.v5l=Ui[10]|0,this.v5h=Ui[11]|0,this.v6l=Ui[12]|0,this.v6h=Ui[13]|0,this.v7l=Ui[14]|0,this.v7h=Ui[15]|0,Ki(t,e,64,16,16);let{key:n,personalization:r,salt:i}=e,a=0;if(n!==void 0&&(n=Xr(n),a=n.length),this.v0l^=this.outputLen|a<<8|16842752,i!==void 0){i=Xr(i);let e=Pr(i);this.v4l^=Br(e[0]),this.v4h^=Br(e[1]),this.v5l^=Br(e[2]),this.v5h^=Br(e[3])}if(r!==void 0){r=Xr(r);let e=Pr(r);this.v6l^=Br(e[0]),this.v6h^=Br(e[1]),this.v7l^=Br(e[2]),this.v7h^=Br(e[3])}if(n!==void 0){let e=new Uint8Array(this.blockLen);e.set(n),this.update(e)}}get(){let{v0l:e,v0h:t,v1l:n,v1h:r,v2l:i,v2h:a,v3l:o,v3h:s,v4l:c,v4h:l,v5l:u,v5h:d,v6l:f,v6h:p,v7l:m,v7h: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.v0l=e|0,this.v0h=t|0,this.v1l=n|0,this.v1h=r|0,this.v2l=i|0,this.v2h=a|0,this.v3l=o|0,this.v3h=s|0,this.v4l=c|0,this.v4h=l|0,this.v5l=u|0,this.v5h=d|0,this.v6l=f|0,this.v6h=p|0,this.v7l=m|0,this.v7h=h|0}compress(e,t,n){this.get().forEach((e,t)=>B[t]=e),B.set(Ui,16);let{h:r,l:i}=or(BigInt(this.length));B[24]=Ui[8]^i,B[25]=Ui[9]^r,n&&(B[28]=~B[28],B[29]=~B[29]);let a=0,o=Hi;for(let n=0;n<12;n++)Wi(0,4,8,12,e,t+2*o[a++]),Gi(0,4,8,12,e,t+2*o[a++]),Wi(1,5,9,13,e,t+2*o[a++]),Gi(1,5,9,13,e,t+2*o[a++]),Wi(2,6,10,14,e,t+2*o[a++]),Gi(2,6,10,14,e,t+2*o[a++]),Wi(3,7,11,15,e,t+2*o[a++]),Gi(3,7,11,15,e,t+2*o[a++]),Wi(0,5,10,15,e,t+2*o[a++]),Gi(0,5,10,15,e,t+2*o[a++]),Wi(1,6,11,12,e,t+2*o[a++]),Gi(1,6,11,12,e,t+2*o[a++]),Wi(2,7,8,13,e,t+2*o[a++]),Gi(2,7,8,13,e,t+2*o[a++]),Wi(3,4,9,14,e,t+2*o[a++]),Gi(3,4,9,14,e,t+2*o[a++]);this.v0l^=B[0]^B[16],this.v0h^=B[1]^B[17],this.v1l^=B[2]^B[18],this.v1h^=B[3]^B[19],this.v2l^=B[4]^B[20],this.v2h^=B[5]^B[21],this.v3l^=B[6]^B[22],this.v3h^=B[7]^B[23],this.v4l^=B[8]^B[24],this.v4h^=B[9]^B[25],this.v5l^=B[10]^B[26],this.v5h^=B[11]^B[27],this.v6l^=B[12]^B[28],this.v6h^=B[13]^B[29],this.v7l^=B[14]^B[30],this.v7h^=B[15]^B[31],Fr(B)}destroy(){this.destroyed=!0,Fr(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Yi=ei(e=>new Ji(e)),Xi=`https://rpc.walletconnect.org/v1`;function Zi(e){let t=`Ethereum Signed Message:
|
|
4
|
+
${e.length}`,n=new TextEncoder().encode(t+e);return`0x`+Buffer.from(vi(n)).toString(`hex`)}async function Qi(e,t,n,r,i,a){switch(n.t){case`eip191`:return await $i(e,t,n.s);case`eip1271`:return await ea(e,t,n.s,r,i,a);default:throw Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${n.t}`)}}async function $i(e,t,n){return(await en({hash:Zi(t),signature:n})).toLowerCase()===e.toLowerCase()}async function ea(e,t,n,r,i,a){let o=on(r);if(!o.namespace||!o.reference)throw Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${r}`);try{let o=n.substring(2),s=(o.length/2).toString(16).padStart(64,`0`),c=`0x1626ba7e`+(t.startsWith(`0x`)?t:Zi(t)).substring(2)+`0000000000000000000000000000000000000000000000000000000000000040`+s+o,{result:l}=await(await fetch(`${a||Xi}/?chainId=${r}&projectId=${i}`,{headers:{"Content-Type":`application/json`},method:`POST`,body:JSON.stringify({id:ta(),jsonrpc:`2.0`,method:`eth_call`,params:[{to:e,data:c},`latest`]})})).json();return l?l.slice(0,10).toLowerCase()===`0x1626ba7e`:!1}catch(e){return console.error(`isValidEip1271Signature: `,e),!1}}function ta(){return Date.now()+Math.floor(Math.random()*1e3)}function na(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);let r=n[0];if(r===0)throw Error(`No signatures found`);let i=1+r*64;if(n.length<i)throw Error(`Transaction data too short for claimed signature count`);if(n.length<100)throw Error(`Transaction too short`);let a=Buffer.from(e,`base64`).slice(1,65);return E.encode(a)}function ra(e){let t=new Uint8Array(Buffer.from(e,`base64`)),n=Array.from(`TransactionData::`).map(e=>e.charCodeAt(0)),r=new Uint8Array(n.length+t.length);r.set(n),r.set(t,n.length);let i=Yi(r,{dkLen:32});return E.encode(i)}function ia(e){let t=new Uint8Array(Ri(aa(e)));return E.encode(t)}function aa(e){if(e instanceof Uint8Array)return e;if(Array.isArray(e))return new Uint8Array(e);if(typeof e==`object`&&e&&e.data)return new Uint8Array(Object.values(e.data));if(typeof e==`object`&&e)return new Uint8Array(Object.values(e));throw Error(`getNearUint8ArrayFromBytes: Unexpected result type from bytes array`)}function oa(e){let t=Buffer.from(e,`base64`),n=D(t).txn;if(!n)throw Error(`Invalid signed transaction: missing 'txn' field`);let r=a(n),o=Buffer.from(`TX`),s=Vi(Buffer.concat([o,Buffer.from(r)]));return i.encode(s).replace(/=+$/,``)}function sa(e){let t=[],n=BigInt(e);for(;n>=BigInt(128);)t.push(Number(n&BigInt(127)|BigInt(128))),n>>=BigInt(7);return t.push(Number(n)),Buffer.from(t)}function ca(e){let t=Buffer.from(e.signed.bodyBytes,`base64`),n=Buffer.from(e.signed.authInfoBytes,`base64`),r=Buffer.from(e.signature.signature,`base64`),i=[];i.push(Buffer.from([10])),i.push(sa(t.length)),i.push(t),i.push(Buffer.from([18])),i.push(sa(n.length)),i.push(n),i.push(Buffer.from([26])),i.push(sa(r.length)),i.push(r);let a=Ri(Buffer.concat(i));return Buffer.from(a).toString(`hex`).toUpperCase()}function la(e){let t=[];try{if(typeof e==`string`)return t.push(e),t;if(typeof e!=`object`)return t;e!=null&&e.id&&t.push(e.id);let n=e?.capabilities?.caip345?.transactionHashes;n&&t.push(...n)}catch(e){console.warn(`getWalletSendCallsHashes failed: `,e)}return t}var ua=Object.defineProperty,da=Object.defineProperties,fa=Object.getOwnPropertyDescriptors,pa=Object.getOwnPropertySymbols,ma=Object.prototype.hasOwnProperty,ha=Object.prototype.propertyIsEnumerable,ga=(e,t,n)=>t in e?ua(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_a=(e,t)=>{for(var n in t||={})ma.call(t,n)&&ga(e,n,t[n]);if(pa)for(var n of pa(t))ha.call(t,n)&&ga(e,n,t[n]);return e},va=(e,t)=>da(e,fa(t)),ya=`did:pkh:`,ba=e=>e?.split(`:`),xa=e=>{let t=e&&ba(e);if(t)return e.includes(ya)?t[3]:t[1]},Sa=e=>{let t=e&&ba(e);if(t)return t[2]+`:`+t[3]},Ca=e=>{let t=e&&ba(e);if(t)return t.pop()};async function wa(e){let{cacao:t,projectId:n}=e,{s:r,p:i}=t,a=Ta(i,i.iss);return await Qi(Ca(i.iss),a,r,Sa(i.iss),n)}var Ta=(e,t)=>{let n=`${e.domain} wants you to sign in with your Ethereum account:`,r=Ca(t);if(!e.aud&&!e.uri)throw Error("Either `aud` or `uri` is required to construct the message");let i=e.statement||void 0,a=`URI: ${e.aud||e.uri}`,o=`Version: ${e.version}`,s=`Chain ID: ${xa(t)}`,c=`Nonce: ${e.nonce}`,l=`Issued At: ${e.iat}`,u=e.exp?`Expiration Time: ${e.exp}`:void 0,d=e.nbf?`Not Before: ${e.nbf}`:void 0,f=e.requestId?`Request ID: ${e.requestId}`:void 0,p=e.resources?`Resources:${e.resources.map(e=>`
|
|
5
|
+
- ${e}`).join(``)}`:void 0,m=Ba(e.resources);if(m){let e=Ma(m);i=La(i,e)}return[n,r,``,i,``,a,o,s,c,l,u,d,f,p].filter(e=>e!=null).join(`
|
|
6
|
+
`)};function Ea(e){return Buffer.from(JSON.stringify(e)).toString(`base64`)}function Da(e){return JSON.parse(Buffer.from(e,`base64`).toString(`utf-8`))}function Oa(e){if(!e)throw Error(`No recap provided, value is undefined`);if(!e.att)throw Error("No `att` property found");let t=Object.keys(e.att);if(!(t!=null&&t.length))throw Error("No resources found in `att` property");t.forEach(t=>{let n=e.att[t];if(Array.isArray(n)||typeof n!=`object`)throw Error(`Resource must be an object: ${t}`);if(!Object.keys(n).length)throw Error(`Resource object is empty: ${t}`);Object.keys(n).forEach(e=>{let t=n[e];if(!Array.isArray(t))throw Error(`Ability limits ${e} must be an array of objects, found: ${t}`);if(!t.length)throw Error(`Value of ${e} is empty array, must be an array with objects`);t.forEach(t=>{if(typeof t!=`object`)throw Error(`Ability limits (${e}) must be an array of objects, found: ${t}`)})})})}function ka(e,t,n,r={}){return n?.sort((e,t)=>e.localeCompare(t)),{att:{[e]:Aa(t,n,r)}}}function Aa(e,t,n={}){t=t?.sort((e,t)=>e.localeCompare(t));let r=t.map(t=>({[`${e}/${t}`]:[n]}));return Object.assign({},...r)}function ja(e){return Oa(e),`urn:recap:${Ea(e).replace(/=/g,``)}`}function Ma(e){let t=Da(e.replace(`urn:recap:`,``));return Oa(t),t}function Na(e,t,n){return ja(ka(e,t,n))}function Pa(e){return e&&e.includes(`urn:recap:`)}function Fa(e,t){return ja(Ia(Ma(e),Ma(t)))}function Ia(e,t){Oa(e),Oa(t);let n=Object.keys(e.att).concat(Object.keys(t.att)).sort((e,t)=>e.localeCompare(t)),r={att:{}};return n.forEach(n=>{Object.keys(e.att?.[n]||{}).concat(Object.keys(t.att?.[n]||{})).sort((e,t)=>e.localeCompare(t)).forEach(i=>{r.att[n]=va(_a({},r.att[n]),{[i]:e.att[n]?.[i]||t.att[n]?.[i]})})}),r}function La(e=``,t){Oa(t);let n=`I further authorize the stated URI to perform the following actions on my behalf: `;if(e.includes(n))return e;let r=[],i=0;Object.keys(t.att).forEach(e=>{let n=Object.keys(t.att[e]).map(e=>({ability:e.split(`/`)[0],action:e.split(`/`)[1]}));n.sort((e,t)=>e.action.localeCompare(t.action));let a={};n.forEach(e=>{a[e.ability]||(a[e.ability]=[]),a[e.ability].push(e.action)});let o=Object.keys(a).map(t=>(i++,`(${i}) '${t}': '${a[t].join(`', '`)}' for '${e}'.`));r.push(o.join(`, `).replace(`.,`,`.`))});let a=`${n}${r.join(` `)}`;return`${e?e+` `:``}${a}`}function Ra(e){let t=Ma(e);Oa(t);let n=t.att?.eip155;return n?Object.keys(n).map(e=>e.split(`/`)[1]):[]}function za(e){let t=Ma(e);Oa(t);let n=[];return Object.values(t.att).forEach(e=>{Object.values(e).forEach(e=>{var t;(t=e?.[0])!=null&&t.chains&&n.push(e[0].chains)})}),[...new Set(n.flat())]}function Ba(e){if(!e)return;let t=e?.[e.length-1];return Pa(t)?t:void 0}function Va(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function Ha(e){if(typeof e!=`boolean`)throw Error(`boolean expected, not ${e}`)}function Ua(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function Wa(e,...t){if(!Va(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 Ga(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 Ka(e,t){Wa(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function qa(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Ja(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Ya(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}var Xa=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Za(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function Qa(e){if(typeof e==`string`)e=Za(e);else if(Va(e))e=oo(e);else throw Error(`Uint8Array expected, got `+typeof e);return e}function $a(e,t){if(typeof t!=`object`||!t)throw Error(`options must be defined`);return Object.assign(e,t)}function eo(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}var to=(e,t)=>{function n(n,...r){if(Wa(n),!Xa)throw Error(`Non little-endian hardware is not yet supported`);if(e.nonceLength!==void 0){let t=r[0];if(!t)throw Error(`nonce / iv required`);e.varSizeNonce?Wa(t):Wa(t,e.nonceLength)}let i=e.tagLength;i&&r[1]!==void 0&&Wa(r[1]);let a=t(n,...r),o=(e,t)=>{if(t!==void 0){if(e!==2)throw Error(`cipher output not supported`);Wa(t)}},s=!1;return{encrypt(e,t){if(s)throw Error(`cannot encrypt() twice with same key + nonce`);return s=!0,Wa(e),o(a.encrypt.length,t),a.encrypt(e,t)},decrypt(e,t){if(Wa(e),i&&e.length<i)throw Error(`invalid ciphertext length: smaller than tagLength=`+i);return o(a.decrypt.length,t),a.decrypt(e,t)}}}return Object.assign(n,e),n};function no(e,t,n=!0){if(t===void 0)return new Uint8Array(e);if(t.length!==e)throw Error(`invalid output length, expected `+e+`, got: `+t.length);if(n&&!ao(t))throw Error(`invalid output, must be aligned`);return t}function ro(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)}function io(e,t,n){Ha(n);let r=new Uint8Array(16),i=Ya(r);return ro(i,0,BigInt(t),n),ro(i,8,BigInt(e),n),r}function ao(e){return e.byteOffset%4==0}function oo(e){return Uint8Array.from(e)}var so=e=>Uint8Array.from(e.split(``).map(e=>e.charCodeAt(0))),co=so(`expand 16-byte k`),lo=so(`expand 32-byte k`),uo=qa(co),fo=qa(lo);function V(e,t){return e<<t|e>>>32-t}function po(e){return e.byteOffset%4==0}var mo=64,ho=16,go=2**32-1,_o=new Uint32Array;function vo(e,t,n,r,i,a,o,s){let c=i.length,l=new Uint8Array(mo),u=qa(l),d=po(i)&&po(a),f=d?qa(i):_o,p=d?qa(a):_o;for(let m=0;m<c;o++){if(e(t,n,r,u,o,s),o>=go)throw Error(`arx: counter overflow`);let h=Math.min(mo,c-m);if(d&&h===mo){let e=m/4;if(m%4!=0)throw Error(`arx: invalid block position`);for(let t=0,n;t<ho;t++)n=e+t,p[n]=f[n]^u[t];m+=mo;continue}for(let e=0,t;e<h;e++)t=m+e,a[t]=i[t]^l[e];m+=h}}function yo(e,t){let{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:a,rounds:o}=$a({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!=`function`)throw Error(`core must be a function`);return Ua(i),Ua(o),Ha(a),Ha(n),(t,s,c,l,u=0)=>{Wa(t),Wa(s),Wa(c);let d=c.length;if(l===void 0&&(l=new Uint8Array(d)),Wa(l),Ua(u),u<0||u>=go)throw Error(`arx: counter overflow`);if(l.length<d)throw Error(`arx: output (${l.length}) is shorter than data (${d})`);let f=[],p=t.length,m,h;if(p===32)f.push(m=oo(t)),h=fo;else if(p===16&&n)m=new Uint8Array(32),m.set(t),m.set(t,16),h=uo,f.push(m);else throw Error(`arx: invalid 32-byte key, got length=${p}`);po(s)||f.push(s=oo(s));let g=qa(m);if(r){if(s.length!==24)throw Error(`arx: extended nonce must be 24 bytes`);r(h,g,qa(s.subarray(0,16)),g),s=s.subarray(16)}let _=16-i;if(_!==s.length)throw Error(`arx: nonce must be ${_} or 16 bytes`);if(_!==12){let e=new Uint8Array(12);e.set(s,a?0:12-s.length),s=e,f.push(s)}let v=qa(s);return vo(e,h,g,v,c,l,u,o),Ja(...f),l}}var bo=(e,t)=>e[t++]&255|(e[t++]&255)<<8,xo=class{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,e=Qa(e),Wa(e,32);let t=bo(e,0),n=bo(e,2),r=bo(e,4),i=bo(e,6),a=bo(e,8),o=bo(e,10),s=bo(e,12),c=bo(e,14);this.r[0]=t&8191,this.r[1]=(t>>>13|n<<3)&8191,this.r[2]=(n>>>10|r<<6)&7939,this.r[3]=(r>>>7|i<<9)&8191,this.r[4]=(i>>>4|a<<12)&255,this.r[5]=a>>>1&8190,this.r[6]=(a>>>14|o<<2)&8191,this.r[7]=(o>>>11|s<<5)&8065,this.r[8]=(s>>>8|c<<8)&8191,this.r[9]=c>>>5&127;for(let t=0;t<8;t++)this.pad[t]=bo(e,16+2*t)}process(e,t,n=!1){let r=n?0:2048,{h:i,r:a}=this,o=a[0],s=a[1],c=a[2],l=a[3],u=a[4],d=a[5],f=a[6],p=a[7],m=a[8],h=a[9],g=bo(e,t+0),_=bo(e,t+2),v=bo(e,t+4),y=bo(e,t+6),b=bo(e,t+8),x=bo(e,t+10),S=bo(e,t+12),C=bo(e,t+14),w=i[0]+(g&8191),T=i[1]+((g>>>13|_<<3)&8191),E=i[2]+((_>>>10|v<<6)&8191),D=i[3]+((v>>>7|y<<9)&8191),O=i[4]+((y>>>4|b<<12)&8191),k=i[5]+(b>>>1&8191),A=i[6]+((b>>>14|x<<2)&8191),j=i[7]+((x>>>11|S<<5)&8191),M=i[8]+((S>>>8|C<<8)&8191),N=i[9]+(C>>>5|r),P=0,F=P+w*o+5*h*T+5*m*E+5*p*D+5*f*O;P=F>>>13,F&=8191,F+=5*d*k+5*u*A+5*l*j+5*c*M+5*s*N,P+=F>>>13,F&=8191;let I=P+w*s+T*o+5*h*E+5*m*D+5*p*O;P=I>>>13,I&=8191,I+=5*f*k+5*d*A+5*u*j+5*l*M+5*c*N,P+=I>>>13,I&=8191;let ee=P+w*c+T*s+E*o+5*h*D+5*m*O;P=ee>>>13,ee&=8191,ee+=5*p*k+5*f*A+5*d*j+5*u*M+5*l*N,P+=ee>>>13,ee&=8191;let L=P+w*l+T*c+E*s+D*o+5*h*O;P=L>>>13,L&=8191,L+=5*m*k+5*p*A+5*f*j+5*d*M+5*u*N,P+=L>>>13,L&=8191;let te=P+w*u+T*l+E*c+D*s+O*o;P=te>>>13,te&=8191,te+=5*h*k+5*m*A+5*p*j+5*f*M+5*d*N,P+=te>>>13,te&=8191;let ne=P+w*d+T*u+E*l+D*c+O*s;P=ne>>>13,ne&=8191,ne+=k*o+5*h*A+5*m*j+5*p*M+5*f*N,P+=ne>>>13,ne&=8191;let re=P+w*f+T*d+E*u+D*l+O*c;P=re>>>13,re&=8191,re+=k*s+A*o+5*h*j+5*m*M+5*p*N,P+=re>>>13,re&=8191;let ie=P+w*p+T*f+E*d+D*u+O*l;P=ie>>>13,ie&=8191,ie+=k*c+A*s+j*o+5*h*M+5*m*N,P+=ie>>>13,ie&=8191;let ae=P+w*m+T*p+E*f+D*d+O*u;P=ae>>>13,ae&=8191,ae+=k*l+A*c+j*s+M*o+5*h*N,P+=ae>>>13,ae&=8191;let oe=P+w*h+T*m+E*p+D*f+O*d;P=oe>>>13,oe&=8191,oe+=k*u+A*l+j*c+M*s+N*o,P+=oe>>>13,oe&=8191,P=(P<<2)+P|0,P=P+F|0,F=P&8191,P>>>=13,I+=P,i[0]=F,i[1]=I,i[2]=ee,i[3]=L,i[4]=te,i[5]=ne,i[6]=re,i[7]=ie,i[8]=ae,i[9]=oe}finalize(){let{h:e,pad:t}=this,n=new Uint16Array(10),r=e[1]>>>13;e[1]&=8191;for(let t=2;t<10;t++)e[t]+=r,r=e[t]>>>13,e[t]&=8191;e[0]+=r*5,r=e[0]>>>13,e[0]&=8191,e[1]+=r,r=e[1]>>>13,e[1]&=8191,e[2]+=r,n[0]=e[0]+5,r=n[0]>>>13,n[0]&=8191;for(let t=1;t<10;t++)n[t]=e[t]+r,r=n[t]>>>13,n[t]&=8191;n[9]-=8192;let i=(r^1)-1;for(let e=0;e<10;e++)n[e]&=i;i=~i;for(let t=0;t<10;t++)e[t]=e[t]&i|n[t];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let a=e[0]+t[0];e[0]=a&65535;for(let n=1;n<8;n++)a=(e[n]+t[n]|0)+(a>>>16)|0,e[n]=a&65535;Ja(n)}update(e){Ga(this),e=Qa(e),Wa(e);let{buffer:t,blockLen:n}=this,r=e.length;for(let i=0;i<r;){let a=Math.min(n-this.pos,r-i);if(a===n){for(;n<=r-i;i+=n)this.process(e,i);continue}t.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===n&&(this.process(t,0,!1),this.pos=0)}return this}destroy(){Ja(this.h,this.r,this.buffer,this.pad)}digestInto(e){Ga(this),Ka(e,this),this.finished=!0;let{buffer:t,h:n}=this,{pos:r}=this;if(r){for(t[r++]=1;r<16;r++)t[r]=0;this.process(t,0,!0)}this.finalize();let i=0;for(let t=0;t<8;t++)e[i++]=n[t]>>>0,e[i++]=n[t]>>>8;return e}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}};function So(e){let t=(t,n)=>e(n).update(Qa(t)).digest(),n=e(new Uint8Array(32));return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}var Co=So(e=>new xo(e));function wo(e,t,n,r,i,a=20){let o=e[0],s=e[1],c=e[2],l=e[3],u=t[0],d=t[1],f=t[2],p=t[3],m=t[4],h=t[5],g=t[6],_=t[7],v=i,y=n[0],b=n[1],x=n[2],S=o,C=s,w=c,T=l,E=u,D=d,O=f,k=p,A=m,j=h,M=g,N=_,P=v,F=y,I=b,ee=x;for(let e=0;e<a;e+=2)S=S+E|0,P=V(P^S,16),A=A+P|0,E=V(E^A,12),S=S+E|0,P=V(P^S,8),A=A+P|0,E=V(E^A,7),C=C+D|0,F=V(F^C,16),j=j+F|0,D=V(D^j,12),C=C+D|0,F=V(F^C,8),j=j+F|0,D=V(D^j,7),w=w+O|0,I=V(I^w,16),M=M+I|0,O=V(O^M,12),w=w+O|0,I=V(I^w,8),M=M+I|0,O=V(O^M,7),T=T+k|0,ee=V(ee^T,16),N=N+ee|0,k=V(k^N,12),T=T+k|0,ee=V(ee^T,8),N=N+ee|0,k=V(k^N,7),S=S+D|0,ee=V(ee^S,16),M=M+ee|0,D=V(D^M,12),S=S+D|0,ee=V(ee^S,8),M=M+ee|0,D=V(D^M,7),C=C+O|0,P=V(P^C,16),N=N+P|0,O=V(O^N,12),C=C+O|0,P=V(P^C,8),N=N+P|0,O=V(O^N,7),w=w+k|0,F=V(F^w,16),A=A+F|0,k=V(k^A,12),w=w+k|0,F=V(F^w,8),A=A+F|0,k=V(k^A,7),T=T+E|0,I=V(I^T,16),j=j+I|0,E=V(E^j,12),T=T+E|0,I=V(I^T,8),j=j+I|0,E=V(E^j,7);let L=0;r[L++]=o+S|0,r[L++]=s+C|0,r[L++]=c+w|0,r[L++]=l+T|0,r[L++]=u+E|0,r[L++]=d+D|0,r[L++]=f+O|0,r[L++]=p+k|0,r[L++]=m+A|0,r[L++]=h+j|0,r[L++]=g+M|0,r[L++]=_+N|0,r[L++]=v+P|0,r[L++]=y+F|0,r[L++]=b+I|0,r[L++]=x+ee|0}var To=yo(wo,{counterRight:!1,counterLength:4,allowShortKeys:!1}),Eo=new Uint8Array(16),Do=(e,t)=>{e.update(t);let n=t.length%16;n&&e.update(Eo.subarray(n))},Oo=new Uint8Array(32);function ko(e,t,n,r,i){let a=e(t,n,Oo),o=Co.create(a);i&&Do(o,i),Do(o,r);let s=io(r.length,i?i.length:0,!0);o.update(s);let c=o.digest();return Ja(a,s),c}var Ao=to({blockSize:64,nonceLength:12,tagLength:16},(e=>(t,n,r)=>({encrypt(i,a){let o=i.length;a=no(o+16,a,!1),a.set(i);let s=a.subarray(0,-16);e(t,n,s,s,1);let c=ko(e,t,n,s,r);return a.set(c,o),Ja(c),a},decrypt(i,a){a=no(i.length-16,a,!1);let o=i.subarray(0,-16),s=i.subarray(-16),c=ko(e,t,n,o,r);if(!eo(s,c))throw Error(`invalid tag`);return a.set(i.subarray(0,-16)),e(t,n,a,a,1),Ja(c),a}}))(To)),jo=class extends Qr{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,jr(e);let n=Xr(t);if(this.iHash=e.create(),typeof this.iHash.update!=`function`)throw Error(`Expected instance of class which extends utils.Hash`);this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let r=this.blockLen,i=new Uint8Array(r);i.set(n.length>r?e.create().update(n).digest():n);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),Fr(i)}update(e){return Mr(this),this.iHash.update(e),this}digestInto(e){Mr(this),Ar(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:n,finished:r,destroyed:i,blockLen:a,outputLen:o}=this;return e=e,e.finished=r,e.destroyed=i,e.blockLen=a,e.outputLen=o,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Mo=(e,t,n)=>new jo(e,t).update(n).digest();Mo.create=(e,t)=>new jo(e,t);function No(e,t,n){return jr(e),n===void 0&&(n=new Uint8Array(e.outputLen)),Mo(e,Xr(n),Xr(t))}var Po=Uint8Array.from([0]),Fo=Uint8Array.of();function Io(e,t,n,r=32){jr(e),kr(r);let i=e.outputLen;if(r>255*i)throw Error(`Length should be <= 255*HashLen`);let a=Math.ceil(r/i);n===void 0&&(n=Fo);let o=new Uint8Array(a*i),s=Mo.create(e,t),c=s._cloneInto(),l=new Uint8Array(s.outputLen);for(let e=0;e<a;e++)Po[0]=e+1,c.update(e===0?Fo:l).update(n).update(Po).digestInto(l),o.set(l,i*e),s._cloneInto(c);return s.destroy(),c.destroy(),Fr(l,Po),o.slice(0,r)}var Lo=(e,t,n,r,i)=>Io(e,No(e,t,n),r,i),Ro=Ri,zo=BigInt(0),Bo=BigInt(1);function Vo(e,t=``){if(typeof e!=`boolean`){let n=t&&`"${t}"`;throw Error(n+`expected boolean, got type=`+typeof e)}return e}function Ho(e,t,n=``){let r=Or(e),i=e?.length,a=t!==void 0;if(!r||a&&i!==t){let o=n&&`"${n}" `,s=a?` of length ${t}`:``,c=r?`length=${i}`:`type=${typeof e}`;throw Error(o+`expected Uint8Array`+s+`, got `+c)}return e}function Uo(e){let t=e.toString(16);return t.length&1?`0`+t:t}function Wo(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);return e===``?zo:BigInt(`0x`+e)}function Go(e){return Wo(Gr(e))}function Ko(e){return Ar(e),Wo(Gr(Uint8Array.from(e).reverse()))}function qo(e,t){return Jr(e.toString(16).padStart(t*2,`0`))}function Jo(e,t){return qo(e,t).reverse()}function Yo(e,t,n){let r;if(typeof t==`string`)try{r=Jr(t)}catch(t){throw Error(e+` must be hex string or Uint8Array, cause: `+t)}else if(Or(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}var Xo=e=>typeof e==`bigint`&&zo<=e;function Zo(e,t,n){return Xo(e)&&Xo(t)&&Xo(n)&&t<=e&&e<n}function Qo(e,t,n,r){if(!Zo(t,n,r))throw Error(`expected valid `+e+`: `+n+` <= n < `+r+`, got `+t)}function $o(e){let t=0;for(;e>zo;e>>=Bo,t+=1);return t}var es=e=>(Bo<<BigInt(e))-Bo;function ts(e,t,n){if(typeof e!=`number`||e<2)throw Error(`hashLen must be a number`);if(typeof t!=`number`||t<2)throw Error(`qByteLen must be a number`);if(typeof n!=`function`)throw Error(`hmacFn must be a function`);let r=e=>new Uint8Array(e),i=e=>Uint8Array.of(e),a=r(e),o=r(e),s=0,c=()=>{a.fill(1),o.fill(0),s=0},l=(...e)=>n(o,a,...e),u=(e=r(0))=>{o=l(i(0),e),a=l(),e.length!==0&&(o=l(i(1),e),a=l())},d=()=>{if(s++>=1e3)throw Error(`drbg: tried 1000 values`);let e=0,n=[];for(;e<t;){a=l();let t=a.slice();n.push(t),e+=a.length}return Zr(...n)};return(e,t)=>{c(),u(e);let n;for(;!(n=t(d()));)u();return c(),n}}function ns(e,t,n={}){if(!e||typeof e!=`object`)throw Error(`expected valid options object`);function r(t,n,r){let i=e[t];if(r&&i===void 0)return;let a=typeof i;if(a!==n||i===null)throw Error(`param "${t}" is invalid: expected ${n}, got ${a}`)}Object.entries(t).forEach(([e,t])=>r(e,t,!1)),Object.entries(n).forEach(([e,t])=>r(e,t,!0))}function rs(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 is=BigInt(0),as=BigInt(1),os=BigInt(2),ss=BigInt(3),cs=BigInt(4),ls=BigInt(5),us=BigInt(7),ds=BigInt(8),fs=BigInt(9),ps=BigInt(16);function ms(e,t){let n=e%t;return n>=is?n:t+n}function hs(e,t,n){let r=e;for(;t-->is;)r*=r,r%=n;return r}function gs(e,t){if(e===is)throw Error(`invert: expected non-zero number`);if(t<=is)throw Error(`invert: expected positive modulus, got `+t);let n=ms(e,t),r=t,i=is,a=as;for(;n!==is;){let e=r/n,t=r%n,o=i-a*e;r=n,n=t,i=a,a=o}if(r!==as)throw Error(`invert: does not exist`);return ms(i,t)}function _s(e,t,n){if(!e.eql(e.sqr(t),n))throw Error(`Cannot find square root`)}function vs(e,t){let n=(e.ORDER+as)/cs,r=e.pow(t,n);return _s(e,r,t),r}function ys(e,t){let n=(e.ORDER-ls)/ds,r=e.mul(t,os),i=e.pow(r,n),a=e.mul(t,i),o=e.mul(e.mul(a,os),i),s=e.mul(a,e.sub(o,e.ONE));return _s(e,s,t),s}function bs(e){let t=ks(e),n=xs(e),r=n(t,t.neg(t.ONE)),i=n(t,r),a=n(t,t.neg(r)),o=(e+us)/ps;return(e,t)=>{let n=e.pow(t,o),s=e.mul(n,r),c=e.mul(n,i),l=e.mul(n,a),u=e.eql(e.sqr(s),t),d=e.eql(e.sqr(c),t);n=e.cmov(n,s,u),s=e.cmov(l,c,d);let f=e.eql(e.sqr(s),t),p=e.cmov(n,s,f);return _s(e,p,t),p}}function xs(e){if(e<ss)throw Error(`sqrt is not defined for small field`);let t=e-as,n=0;for(;t%os===is;)t/=os,n++;let r=os,i=ks(e);for(;Ds(i,r)===1;)if(r++>1e3)throw Error(`Cannot find square root: probably non-prime P`);if(n===1)return vs;let a=i.pow(r,t),o=(t+as)/os;return function(e,r){if(e.is0(r))return r;if(Ds(e,r)!==1)throw Error(`Cannot find square root`);let i=n,s=e.mul(e.ONE,a),c=e.pow(r,t),l=e.pow(r,o);for(;!e.eql(c,e.ONE);){if(e.is0(c))return e.ZERO;let t=1,n=e.sqr(c);for(;!e.eql(n,e.ONE);)if(t++,n=e.sqr(n),t===i)throw Error(`Cannot find square root`);let r=as<<BigInt(i-t-1),a=e.pow(s,r);i=t,s=e.sqr(a),c=e.mul(c,s),l=e.mul(l,a)}return l}}function Ss(e){return e%cs===ss?vs:e%ds===ls?ys:e%ps===fs?bs(e):xs(e)}var Cs=[`create`,`isValid`,`is0`,`neg`,`inv`,`sqrt`,`sqr`,`eql`,`add`,`sub`,`mul`,`pow`,`div`,`addN`,`subN`,`mulN`,`sqrN`];function ws(e){return ns(e,Cs.reduce((e,t)=>(e[t]=`function`,e),{ORDER:`bigint`,MASK:`bigint`,BYTES:`number`,BITS:`number`})),e}function Ts(e,t,n){if(n<is)throw Error(`invalid exponent, negatives unsupported`);if(n===is)return e.ONE;if(n===as)return t;let r=e.ONE,i=t;for(;n>is;)n&as&&(r=e.mul(r,i)),i=e.sqr(i),n>>=as;return r}function Es(e,t,n=!1){let r=Array(t.length).fill(n?e.ZERO:void 0),i=t.reduce((t,n,i)=>e.is0(n)?t:(r[i]=t,e.mul(t,n)),e.ONE),a=e.inv(i);return t.reduceRight((t,n,i)=>e.is0(n)?t:(r[i]=e.mul(t,r[i]),e.mul(t,n)),a),r}function Ds(e,t){let n=(e.ORDER-as)/os,r=e.pow(t,n),i=e.eql(r,e.ONE),a=e.eql(r,e.ZERO),o=e.eql(r,e.neg(e.ONE));if(!i&&!a&&!o)throw Error(`invalid Legendre symbol result`);return i?1:a?0:-1}function Os(e,t){t!==void 0&&kr(t);let n=t===void 0?e.toString(2).length:t;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function ks(e,t,n=!1,r={}){if(e<=is)throw Error(`invalid field: expected ORDER > 0, got `+e);let i,a,o=!1,s;if(typeof t==`object`&&t){if(r.sqrt||n)throw Error(`cannot specify opts in two arguments`);let e=t;e.BITS&&(i=e.BITS),e.sqrt&&(a=e.sqrt),typeof e.isLE==`boolean`&&(n=e.isLE),typeof e.modFromBytes==`boolean`&&(o=e.modFromBytes),s=e.allowedLengths}else typeof t==`number`&&(i=t),r.sqrt&&(a=r.sqrt);let{nBitLength:c,nByteLength:l}=Os(e,i);if(l>2048)throw Error(`invalid field: expected ORDER of <= 2048 bytes`);let u,d=Object.freeze({ORDER:e,isLE:n,BITS:c,BYTES:l,MASK:es(c),ZERO:is,ONE:as,allowedLengths:s,create:t=>ms(t,e),isValid:t=>{if(typeof t!=`bigint`)throw Error(`invalid field element: expected bigint, got `+typeof t);return is<=t&&t<e},is0:e=>e===is,isValidNot0:e=>!d.is0(e)&&d.isValid(e),isOdd:e=>(e&as)===as,neg:t=>ms(-t,e),eql:(e,t)=>e===t,sqr:t=>ms(t*t,e),add:(t,n)=>ms(t+n,e),sub:(t,n)=>ms(t-n,e),mul:(t,n)=>ms(t*n,e),pow:(e,t)=>Ts(d,e,t),div:(t,n)=>ms(t*gs(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>gs(t,e),sqrt:a||(t=>(u||=Ss(e),u(d,t))),toBytes:e=>n?Jo(e,l):qo(e,l),fromBytes:(t,r=!0)=>{if(s){if(!s.includes(t.length)||t.length>l)throw Error(`Field.fromBytes: expected `+s+` bytes, got `+t.length);let e=new Uint8Array(l);e.set(t,n?0:e.length-t.length),t=e}if(t.length!==l)throw Error(`Field.fromBytes: expected `+l+` bytes, got `+t.length);let i=n?Ko(t):Go(t);if(o&&(i=ms(i,e)),!r&&!d.isValid(i))throw Error(`invalid field element: outside of range 0..ORDER`);return i},invertBatch:e=>Es(d,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(d)}function As(e){if(typeof e!=`bigint`)throw Error(`field order must be bigint`);let t=e.toString(2).length;return Math.ceil(t/8)}function js(e){let t=As(e);return t+Math.ceil(t/2)}function Ms(e,t,n=!1){let r=e.length,i=As(t),a=js(t);if(r<16||r<a||r>1024)throw Error(`expected `+a+`-1024 bytes of input, got `+r);let o=ms(n?Ko(e):Go(e),t-as)+as;return n?Jo(o,i):qo(o,i)}var Ns=BigInt(0),Ps=BigInt(1);function Fs(e,t){let n=t.negate();return e?n:t}function Is(e,t){let n=Es(e.Fp,t.map(e=>e.Z));return t.map((t,r)=>e.fromAffine(t.toAffine(n[r])))}function Ls(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw Error(`invalid window size, expected [1..`+t+`], got W=`+e)}function Rs(e,t){Ls(e,t);let n=Math.ceil(t/e)+1,r=2**(e-1),i=2**e;return{windows:n,windowSize:r,mask:es(e),maxNumber:i,shiftBy:BigInt(e)}}function zs(e,t,n){let{windowSize:r,mask:i,maxNumber:a,shiftBy:o}=n,s=Number(e&i),c=e>>o;s>r&&(s-=a,c+=Ps);let l=t*r,u=l+Math.abs(s)-1,d=s===0,f=s<0,p=t%2!=0;return{nextN:c,offset:u,isZero:d,isNeg:f,isNegF:p,offsetF:l}}function Bs(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 Vs(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 Hs=new WeakMap,Us=new WeakMap;function Ws(e){return Us.get(e)||1}function Gs(e){if(e!==Ns)throw Error(`invalid wNAF`)}var Ks=class{constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,n=this.ZERO){let r=e;for(;t>Ns;)t&Ps&&(n=n.add(r)),r=r.double(),t>>=Ps;return n}precomputeWindow(e,t){let{windows:n,windowSize:r}=Rs(t,this.bits),i=[],a=e,o=a;for(let e=0;e<n;e++){o=a,i.push(o);for(let e=1;e<r;e++)o=o.add(a),i.push(o);a=o.double()}return i}wNAF(e,t,n){if(!this.Fn.isValid(n))throw Error(`invalid scalar`);let r=this.ZERO,i=this.BASE,a=Rs(e,this.bits);for(let e=0;e<a.windows;e++){let{nextN:o,offset:s,isZero:c,isNeg:l,isNegF:u,offsetF:d}=zs(n,e,a);n=o,c?i=i.add(Fs(u,t[d])):r=r.add(Fs(l,t[s]))}return Gs(n),{p:r,f:i}}wNAFUnsafe(e,t,n,r=this.ZERO){let i=Rs(e,this.bits);for(let e=0;e<i.windows&&n!==Ns;e++){let{nextN:a,offset:o,isZero:s,isNeg:c}=zs(n,e,i);if(n=a,!s){let e=t[o];r=r.add(c?e.negate():e)}}return Gs(n),r}getPrecomputes(e,t,n){let r=Hs.get(t);return r||(r=this.precomputeWindow(t,e),e!==1&&(typeof n==`function`&&(r=n(r)),Hs.set(t,r))),r}cached(e,t,n){let r=Ws(e);return this.wNAF(r,this.getPrecomputes(r,e,n),t)}unsafe(e,t,n,r){let i=Ws(e);return i===1?this._unsafeLadder(e,t,r):this.wNAFUnsafe(i,this.getPrecomputes(i,e,n),t,r)}createCache(e,t){Ls(t,this.bits),Us.set(e,t),Hs.delete(e)}hasCache(e){return Ws(e)!==1}};function qs(e,t,n,r){let i=t,a=e.ZERO,o=e.ZERO;for(;n>Ns||r>Ns;)n&Ps&&(a=a.add(i)),r&Ps&&(o=o.add(i)),i=i.double(),n>>=Ps,r>>=Ps;return{p1:a,p2:o}}function Js(e,t,n,r){Bs(n,e),Vs(r,t);let i=n.length,a=r.length;if(i!==a)throw Error(`arrays of points and scalars must have equal length`);let o=e.ZERO,s=$o(BigInt(i)),c=1;s>12?c=s-3:s>4?c=s-2:s>0&&(c=2);let l=es(c),u=Array(Number(l)+1).fill(o),d=Math.floor((t.BITS-1)/c)*c,f=o;for(let e=d;e>=0;e-=c){u.fill(o);for(let t=0;t<a;t++){let i=r[t],a=Number(i>>BigInt(e)&l);u[a]=u[a].add(n[t])}let t=o;for(let e=u.length-1,n=o;e>0;e--)n=n.add(u[e]),t=t.add(n);if(f=f.add(t),e!==0)for(let e=0;e<c;e++)f=f.double()}return f}function Ys(e,t,n){if(t){if(t.ORDER!==e)throw Error(`Field.ORDER must match order: Fp == p, Fn == n`);return ws(t),t}return ks(e,{isLE:n})}function Xs(e,t,n={},r){if(r===void 0&&(r=e===`edwards`),!t||typeof t!=`object`)throw Error(`expected valid ${e} CURVE object`);for(let e of[`p`,`n`,`h`]){let n=t[e];if(!(typeof n==`bigint`&&n>Ns))throw Error(`CURVE.${e} must be positive bigint`)}let i=Ys(t.p,n.Fp,r),a=Ys(t.n,n.Fn,r),o=[`Gx`,`Gy`,`a`,e===`weierstrass`?`b`:`d`];for(let e of o)if(!i.isValid(t[e]))throw Error(`CURVE.${e} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:i,Fn:a}}Yr(`HashToScalar-`);var Zs=BigInt(0),Qs=BigInt(1),$s=BigInt(2);function ec(e){return ns(e,{adjustScalarBytes:`function`,powPminus2:`function`}),Object.freeze({...e})}function tc(e){let{P:t,type:n,adjustScalarBytes:r,powPminus2:i,randomBytes:a}=ec(e),o=n===`x25519`;if(!o&&n!==`x448`)throw Error(`invalid type`);let s=a||ti,c=o?255:448,l=o?32:56,u=BigInt(o?9:5),d=BigInt(o?121665:39081),f=o?$s**BigInt(254):$s**BigInt(447),p=f+(o?BigInt(8)*$s**BigInt(251)-Qs:BigInt(4)*$s**BigInt(445)-Qs)+Qs,m=e=>ms(e,t),h=g(u);function g(e){return Jo(m(e),l)}function _(e){let t=Yo(`u coordinate`,e,l);return o&&(t[31]&=127),m(Ko(t))}function v(e){return Ko(r(Yo(`scalar`,e,l)))}function y(e,t){let n=S(_(t),v(e));if(n===Zs)throw Error(`invalid private or public key received`);return g(n)}function b(e){return y(e,h)}function x(e,t,n){let r=m(e*(t-n));return t=m(t-r),n=m(n+r),{x_2:t,x_3:n}}function S(e,n){Qo(`u`,e,Zs,t),Qo(`scalar`,n,f,p);let r=n,a=e,o=Qs,s=Zs,l=e,u=Qs,h=Zs;for(let e=BigInt(c-1);e>=Zs;e--){let t=r>>e&Qs;h^=t,{x_2:o,x_3:l}=x(h,o,l),{x_2:s,x_3:u}=x(h,s,u),h=t;let n=o+s,i=m(n*n),c=o-s,f=m(c*c),p=i-f,g=l+u,_=l-u,v=m(_*n),y=m(g*c),b=v+y,S=v-y;l=m(b*b),u=m(a*m(S*S)),o=m(i*f),s=m(p*(i+m(d*p)))}({x_2:o,x_3:l}=x(h,o,l)),{x_2:s,x_3:u}=x(h,s,u);let g=i(s);return m(o*g)}let C={secretKey:l,publicKey:l,seed:l},w=(e=s(l))=>(Ar(e,C.seed),e);function T(e){let t=w(e);return{secretKey:t,publicKey:b(t)}}return{keygen:T,getSharedSecret:(e,t)=>y(e,t),getPublicKey:e=>b(e),scalarMult:y,scalarMultBase:b,utils:{randomSecretKey:w,randomPrivateKey:w},GuBytes:h.slice(),lengths:C}}var nc=BigInt(1),rc=BigInt(2),ic=BigInt(3),ac=BigInt(5),oc=BigInt(8),sc=BigInt(`0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed`),cc={p:sc,n:BigInt(`0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed`),h:oc,a:BigInt(`0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec`),d:BigInt(`0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3`),Gx:BigInt(`0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a`),Gy:BigInt(`0x6666666666666666666666666666666666666666666666666666666666666658`)};function lc(e){let t=BigInt(10),n=BigInt(20),r=BigInt(40),i=BigInt(80),a=sc,o=e*e%a*e%a,s=hs(hs(o,rc,a)*o%a,nc,a)*e%a,c=hs(s,ac,a)*s%a,l=hs(c,t,a)*c%a,u=hs(l,n,a)*l%a,d=hs(u,r,a)*u%a;return{pow_p_5_8:hs(hs(hs(hs(d,i,a)*d%a,i,a)*d%a,t,a)*c%a,rc,a)*e%a,b2:o}}function uc(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}var dc=ks(cc.p,{isLE:!0}),fc=(()=>{let e=dc.ORDER;return tc({P:e,type:`x25519`,powPminus2:t=>{let{pow_p_5_8:n,b2:r}=lc(t);return ms(hs(n,ic,e)*r,e)},adjustScalarBytes:uc})})(),pc=(e,t)=>(e+(e>=0?t:-t)/bc)/t;function mc(e,t,n){let[[r,i],[a,o]]=t,s=pc(o*e,n),c=pc(-i*e,n),l=e-s*r-c*a,u=-s*i-c*o,d=l<vc,f=u<vc;d&&(l=-l),f&&(u=-u);let p=es(Math.ceil($o(n)/2))+yc;if(l<vc||l>=p||u<vc||u>=p)throw Error(`splitScalar (endomorphism): failed, k=`+e);return{k1neg:d,k1:l,k2neg:f,k2:u}}function hc(e){if(![`compact`,`recovered`,`der`].includes(e))throw Error(`Signature format must be "compact", "recovered", or "der"`);return e}function gc(e,t){let n={};for(let r of Object.keys(t))n[r]=e[r]===void 0?t[r]:e[r];return Vo(n.lowS,`lowS`),Vo(n.prehash,`prehash`),n.format!==void 0&&hc(n.format),n}var _c={Err:class extends Error{constructor(e=``){super(e)}},_tlv:{encode:(e,t)=>{let{Err:n}=_c;if(e<0||e>256)throw new n(`tlv.encode: wrong tag`);if(t.length&1)throw new n(`tlv.encode: unpadded data`);let r=t.length/2,i=Uo(r);if(i.length/2&128)throw new n(`tlv.encode: long form length too big`);let a=r>127?Uo(i.length/2|128):``;return Uo(e)+a+i+t},decode(e,t){let{Err:n}=_c,r=0;if(e<0||e>256)throw new n(`tlv.encode: wrong tag`);if(t.length<2||t[r++]!==e)throw new n(`tlv.decode: wrong tlv`);let i=t[r++],a=!!(i&128),o=0;if(!a)o=i;else{let e=i&127;if(!e)throw new n(`tlv.decode(long): indefinite length not supported`);if(e>4)throw new n(`tlv.decode(long): byte length is too big`);let a=t.subarray(r,r+e);if(a.length!==e)throw new n(`tlv.decode: length bytes not complete`);if(a[0]===0)throw new n(`tlv.decode(long): zero leftmost byte`);for(let e of a)o=o<<8|e;if(r+=e,o<128)throw new n(`tlv.decode(long): not minimal encoding`)}let s=t.subarray(r,r+o);if(s.length!==o)throw new n(`tlv.decode: wrong value length`);return{v:s,l:t.subarray(r+o)}}},_int:{encode(e){let{Err:t}=_c;if(e<vc)throw new t(`integer: negative integers are not allowed`);let n=Uo(e);if(Number.parseInt(n[0],16)&8&&(n=`00`+n),n.length&1)throw new t(`unexpected DER parsing assertion: unpadded hex`);return n},decode(e){let{Err:t}=_c;if(e[0]&128)throw new t(`invalid signature integer: negative`);if(e[0]===0&&!(e[1]&128))throw new t(`invalid signature integer: unnecessary leading zero`);return Go(e)}},toSig(e){let{Err:t,_int:n,_tlv:r}=_c,i=Yo(`signature`,e),{v:a,l:o}=r.decode(48,i);if(o.length)throw new t(`invalid signature: left bytes after parsing`);let{v:s,l:c}=r.decode(2,a),{v:l,l:u}=r.decode(2,c);if(u.length)throw new t(`invalid signature: left bytes after parsing`);return{r:n.decode(s),s:n.decode(l)}},hexFromSig(e){let{_tlv:t,_int:n}=_c,r=t.encode(2,n.encode(e.r))+t.encode(2,n.encode(e.s));return t.encode(48,r)}},vc=BigInt(0),yc=BigInt(1),bc=BigInt(2),xc=BigInt(3),Sc=BigInt(4);function Cc(e,t){let{BYTES:n}=e,r;if(typeof t==`bigint`)r=t;else{let i=Yo(`private key`,t);try{r=e.fromBytes(i)}catch{throw Error(`invalid private key: expected ui8a of size ${n}, got ${typeof t}`)}}if(!e.isValidNot0(r))throw Error(`invalid private key: out of range [1..N-1]`);return r}function wc(e,t={}){let n=Xs(`weierstrass`,e,t),{Fp:r,Fn:i}=n,a=n.CURVE,{h:o,n:s}=a;ns(t,{},{allowInfinityPoint:`boolean`,clearCofactor:`function`,isTorsionFree:`function`,fromBytes:`function`,toBytes:`function`,endo:`object`,wrapPrivateKey:`boolean`});let{endo:c}=t;if(c&&(!r.is0(a.a)||typeof c.beta!=`bigint`||!Array.isArray(c.basises)))throw Error(`invalid endo: expected "beta": bigint and "basises": array`);let l=Ec(r,i);function u(){if(!r.isOdd)throw Error(`compression is not supported: Field does not have .isOdd()`)}function d(e,t,n){let{x:i,y:a}=t.toAffine(),o=r.toBytes(i);return Vo(n,`isCompressed`),n?(u(),Zr(Tc(!r.isOdd(a)),o)):Zr(Uint8Array.of(4),o,r.toBytes(a))}function f(e){Ho(e,void 0,`Point`);let{publicKey:t,publicKeyUncompressed:n}=l,i=e.length,a=e[0],o=e.subarray(1);if(i===t&&(a===2||a===3)){let e=r.fromBytes(o);if(!r.isValid(e))throw Error(`bad point: is not on curve, wrong x`);let t=h(e),n;try{n=r.sqrt(t)}catch(e){let t=e instanceof Error?`: `+e.message:``;throw Error(`bad point: is not on curve, sqrt error`+t)}u();let i=r.isOdd(n);return(a&1)==1!==i&&(n=r.neg(n)),{x:e,y:n}}if(i===n&&a===4){let e=r.BYTES,t=r.fromBytes(o.subarray(0,e)),n=r.fromBytes(o.subarray(e,e*2));if(!g(t,n))throw Error(`bad point: is not on curve`);return{x:t,y:n}}throw Error(`bad point: got length ${i}, expected compressed=${t} or uncompressed=${n}`)}let p=t.toBytes||d,m=t.fromBytes||f;function h(e){let t=r.sqr(e),n=r.mul(t,e);return r.add(r.add(n,r.mul(e,a.a)),a.b)}function g(e,t){let n=r.sqr(t),i=h(e);return r.eql(n,i)}if(!g(a.Gx,a.Gy))throw Error(`bad curve params: generator point`);let _=r.mul(r.pow(a.a,xc),Sc),v=r.mul(r.sqr(a.b),BigInt(27));if(r.is0(r.add(_,v)))throw Error(`bad curve params: a or b`);function y(e,t,n=!1){if(!r.isValid(t)||n&&r.is0(t))throw Error(`bad point coordinate ${e}`);return t}function b(e){if(!(e instanceof T))throw Error(`ProjectivePoint expected`)}function x(e){if(!c||!c.basises)throw Error(`no endo`);return mc(e,c.basises,i.ORDER)}let S=rs((e,t)=>{let{X:n,Y:i,Z:a}=e;if(r.eql(a,r.ONE))return{x:n,y:i};let o=e.is0();t??=o?r.ONE:r.inv(a);let s=r.mul(n,t),c=r.mul(i,t),l=r.mul(a,t);if(o)return{x:r.ZERO,y:r.ZERO};if(!r.eql(l,r.ONE))throw Error(`invZ was invalid`);return{x:s,y:c}}),C=rs(e=>{if(e.is0()){if(t.allowInfinityPoint&&!r.is0(e.Y))return;throw Error(`bad point: ZERO`)}let{x:n,y:i}=e.toAffine();if(!r.isValid(n)||!r.isValid(i))throw Error(`bad point: x or y not field elements`);if(!g(n,i))throw Error(`bad point: equation left != right`);if(!e.isTorsionFree())throw Error(`bad point: not in prime-order subgroup`);return!0});function w(e,t,n,i,a){return n=new T(r.mul(n.X,e),n.Y,n.Z),t=Fs(i,t),n=Fs(a,n),t.add(n)}class T{constructor(e,t,n){this.X=y(`x`,e),this.Y=y(`y`,t,!0),this.Z=y(`z`,n),Object.freeze(this)}static CURVE(){return a}static fromAffine(e){let{x:t,y:n}=e||{};if(!e||!r.isValid(t)||!r.isValid(n))throw Error(`invalid affine point`);if(e instanceof T)throw Error(`projective point not allowed`);return r.is0(t)&&r.is0(n)?T.ZERO:new T(t,n,r.ONE)}static fromBytes(e){let t=T.fromAffine(m(Ho(e,void 0,`point`)));return t.assertValidity(),t}static fromHex(e){return T.fromBytes(Yo(`pointHex`,e))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(e=8,t=!0){return D.createCache(this,e),t||this.multiply(xc),this}assertValidity(){C(this)}hasEvenY(){let{y:e}=this.toAffine();if(!r.isOdd)throw Error(`Field doesn't support isOdd`);return!r.isOdd(e)}equals(e){b(e);let{X:t,Y:n,Z:i}=this,{X:a,Y:o,Z:s}=e,c=r.eql(r.mul(t,s),r.mul(a,i)),l=r.eql(r.mul(n,s),r.mul(o,i));return c&&l}negate(){return new T(this.X,r.neg(this.Y),this.Z)}double(){let{a:e,b:t}=a,n=r.mul(t,xc),{X:i,Y:o,Z:s}=this,c=r.ZERO,l=r.ZERO,u=r.ZERO,d=r.mul(i,i),f=r.mul(o,o),p=r.mul(s,s),m=r.mul(i,o);return m=r.add(m,m),u=r.mul(i,s),u=r.add(u,u),c=r.mul(e,u),l=r.mul(n,p),l=r.add(c,l),c=r.sub(f,l),l=r.add(f,l),l=r.mul(c,l),c=r.mul(m,c),u=r.mul(n,u),p=r.mul(e,p),m=r.sub(d,p),m=r.mul(e,m),m=r.add(m,u),u=r.add(d,d),d=r.add(u,d),d=r.add(d,p),d=r.mul(d,m),l=r.add(l,d),p=r.mul(o,s),p=r.add(p,p),d=r.mul(p,m),c=r.sub(c,d),u=r.mul(p,f),u=r.add(u,u),u=r.add(u,u),new T(c,l,u)}add(e){b(e);let{X:t,Y:n,Z:i}=this,{X:o,Y:s,Z:c}=e,l=r.ZERO,u=r.ZERO,d=r.ZERO,f=a.a,p=r.mul(a.b,xc),m=r.mul(t,o),h=r.mul(n,s),g=r.mul(i,c),_=r.add(t,n),v=r.add(o,s);_=r.mul(_,v),v=r.add(m,h),_=r.sub(_,v),v=r.add(t,i);let y=r.add(o,c);return v=r.mul(v,y),y=r.add(m,g),v=r.sub(v,y),y=r.add(n,i),l=r.add(s,c),y=r.mul(y,l),l=r.add(h,g),y=r.sub(y,l),d=r.mul(f,v),l=r.mul(p,g),d=r.add(l,d),l=r.sub(h,d),d=r.add(h,d),u=r.mul(l,d),h=r.add(m,m),h=r.add(h,m),g=r.mul(f,g),v=r.mul(p,v),h=r.add(h,g),g=r.sub(m,g),g=r.mul(f,g),v=r.add(v,g),m=r.mul(h,v),u=r.add(u,m),m=r.mul(y,v),l=r.mul(_,l),l=r.sub(l,m),m=r.mul(_,h),d=r.mul(y,d),d=r.add(d,m),new T(l,u,d)}subtract(e){return this.add(e.negate())}is0(){return this.equals(T.ZERO)}multiply(e){let{endo:n}=t;if(!i.isValidNot0(e))throw Error(`invalid scalar: out of range`);let r,a,o=e=>D.cached(this,e,e=>Is(T,e));if(n){let{k1neg:t,k1:i,k2neg:s,k2:c}=x(e),{p:l,f:u}=o(i),{p:d,f}=o(c);a=u.add(f),r=w(n.beta,l,d,t,s)}else{let{p:t,f:n}=o(e);r=t,a=n}return Is(T,[r,a])[0]}multiplyUnsafe(e){let{endo:n}=t,r=this;if(!i.isValid(e))throw Error(`invalid scalar: out of range`);if(e===vc||r.is0())return T.ZERO;if(e===yc)return r;if(D.hasCache(this))return this.multiply(e);if(n){let{k1neg:t,k1:i,k2neg:a,k2:o}=x(e),{p1:s,p2:c}=qs(T,r,i,o);return w(n.beta,s,c,t,a)}return D.unsafe(r,e)}multiplyAndAddUnsafe(e,t,n){let r=this.multiplyUnsafe(t).add(e.multiplyUnsafe(n));return r.is0()?void 0:r}toAffine(e){return S(this,e)}isTorsionFree(){let{isTorsionFree:e}=t;return o===yc?!0:e?e(T,this):D.unsafe(this,s).is0()}clearCofactor(){let{clearCofactor:e}=t;return o===yc?this:e?e(T,this):this.multiplyUnsafe(o)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}toBytes(e=!0){return Vo(e,`isCompressed`),this.assertValidity(),p(T,this,e)}toHex(e=!0){return Gr(this.toBytes(e))}toString(){return`<Point ${this.is0()?`ZERO`:this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(e=!0){return this.toBytes(e)}_setWindowSize(e){this.precompute(e)}static normalizeZ(e){return Is(T,e)}static msm(e,t){return Js(T,i,e,t)}static fromPrivateKey(e){return T.BASE.multiply(Cc(i,e))}}T.BASE=new T(a.Gx,a.Gy,r.ONE),T.ZERO=new T(r.ZERO,r.ONE,r.ZERO),T.Fp=r,T.Fn=i;let E=i.BITS,D=new Ks(T,t.endo?Math.ceil(E/2):E);return T.BASE.precompute(8),T}function Tc(e){return Uint8Array.of(e?2:3)}function Ec(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function Dc(e,t={}){let{Fn:n}=e,r=t.randomBytes||ti,i=Object.assign(Ec(e.Fp,n),{seed:js(n.ORDER)});function a(e){try{return!!Cc(n,e)}catch{return!1}}function o(t,n){let{publicKey:r,publicKeyUncompressed:a}=i;try{let i=t.length;return n===!0&&i!==r||n===!1&&i!==a?!1:!!e.fromBytes(t)}catch{return!1}}function s(e=r(i.seed)){return Ms(Ho(e,i.seed,`seed`),n.ORDER)}function c(t,r=!0){return e.BASE.multiply(Cc(n,t)).toBytes(r)}function l(e){let t=s(e);return{secretKey:t,publicKey:c(t)}}function u(t){if(typeof t==`bigint`)return!1;if(t instanceof e)return!0;let{secretKey:r,publicKey:a,publicKeyUncompressed:o}=i;if(n.allowedLengths||r===a)return;let s=Yo(`key`,t).length;return s===a||s===o}function d(t,r,i=!0){if(u(t)===!0)throw Error(`first arg must be private key`);if(u(r)===!1)throw Error(`second arg must be public key`);let a=Cc(n,t);return e.fromHex(r).multiply(a).toBytes(i)}return Object.freeze({getPublicKey:c,getSharedSecret:d,keygen:l,Point:e,utils:{isValidSecretKey:a,isValidPublicKey:o,randomSecretKey:s,isValidPrivateKey:a,randomPrivateKey:s,normPrivateKeyToScalar:e=>Cc(n,e),precompute(t=8,n=e.BASE){return n.precompute(t,!1)}},lengths:i})}function Oc(e,t,n={}){jr(t),ns(n,{},{hmac:`function`,lowS:`boolean`,randomBytes:`function`,bits2int:`function`,bits2int_modN:`function`});let r=n.randomBytes||ti,i=n.hmac||((e,...n)=>Mo(t,e,Zr(...n))),{Fp:a,Fn:o}=e,{ORDER:s,BITS:c}=o,{keygen:l,getPublicKey:u,getSharedSecret:d,utils:f,lengths:p}=Dc(e,n),m={prehash:!1,lowS:typeof n.lowS==`boolean`&&n.lowS,format:void 0,extraEntropy:!1},h=`compact`;function g(e){return e>s>>yc}function _(e,t){if(!o.isValidNot0(t))throw Error(`invalid signature ${e}: out of range 1..Point.Fn.ORDER`);return t}function v(e,t){hc(t);let n=p.signature;return Ho(e,t===`compact`?n:t===`recovered`?n+1:void 0,`${t} signature`)}class y{constructor(e,t,n){this.r=_(`r`,e),this.s=_(`s`,t),n!=null&&(this.recovery=n),Object.freeze(this)}static fromBytes(e,t=h){v(e,t);let n;if(t===`der`){let{r:t,s:n}=_c.toSig(Ho(e));return new y(t,n)}t===`recovered`&&(n=e[0],t=`compact`,e=e.subarray(1));let r=o.BYTES,i=e.subarray(0,r),a=e.subarray(r,r*2);return new y(o.fromBytes(i),o.fromBytes(a),n)}static fromHex(e,t){return this.fromBytes(Jr(e),t)}addRecoveryBit(e){return new y(this.r,this.s,e)}recoverPublicKey(t){let n=a.ORDER,{r,s:i,recovery:c}=this;if(c==null||![0,1,2,3].includes(c))throw Error(`recovery id invalid`);if(s*bc<n&&c>1)throw Error(`recovery id is ambiguous for h>1 curve`);let l=c===2||c===3?r+s:r;if(!a.isValid(l))throw Error(`recovery id 2 or 3 invalid`);let u=a.toBytes(l),d=e.fromBytes(Zr(Tc(!(c&1)),u)),f=o.inv(l),p=x(Yo(`msgHash`,t)),m=o.create(-p*f),h=o.create(i*f),g=e.BASE.multiplyUnsafe(m).add(d.multiplyUnsafe(h));if(g.is0())throw Error(`point at infinify`);return g.assertValidity(),g}hasHighS(){return g(this.s)}toBytes(e=h){if(hc(e),e===`der`)return Jr(_c.hexFromSig(this));let t=o.toBytes(this.r),n=o.toBytes(this.s);if(e===`recovered`){if(this.recovery==null)throw Error(`recovery bit must be present`);return Zr(Uint8Array.of(this.recovery),t,n)}return Zr(t,n)}toHex(e){return Gr(this.toBytes(e))}assertValidity(){}static fromCompact(e){return y.fromBytes(Yo(`sig`,e),`compact`)}static fromDER(e){return y.fromBytes(Yo(`sig`,e),`der`)}normalizeS(){return this.hasHighS()?new y(this.r,o.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes(`der`)}toDERHex(){return Gr(this.toBytes(`der`))}toCompactRawBytes(){return this.toBytes(`compact`)}toCompactHex(){return Gr(this.toBytes(`compact`))}}let b=n.bits2int||function(e){if(e.length>8192)throw Error(`input is too large`);let t=Go(e),n=e.length*8-c;return n>0?t>>BigInt(n):t},x=n.bits2int_modN||function(e){return o.create(b(e))},S=es(c);function C(e){return Qo(`num < 2^`+c,e,vc,S),o.toBytes(e)}function w(e,n){return Ho(e,void 0,`message`),n?Ho(t(e),void 0,`prehashed message`):e}function T(t,n,i){if([`recovered`,`canonical`].some(e=>e in i))throw Error(`sign() legacy options not supported`);let{lowS:a,prehash:s,extraEntropy:c}=gc(i,m);t=w(t,s);let l=x(t),u=Cc(o,n),d=[C(u),C(l)];if(c!=null&&c!==!1){let e=c===!0?r(p.secretKey):c;d.push(Yo(`extraEntropy`,e))}let f=Zr(...d),h=l;function _(t){let n=b(t);if(!o.isValidNot0(n))return;let r=o.inv(n),i=e.BASE.multiply(n).toAffine(),s=o.create(i.x);if(s===vc)return;let c=o.create(r*o.create(h+s*u));if(c===vc)return;let l=(i.x===s?0:2)|Number(i.y&yc),d=c;return a&&g(c)&&(d=o.neg(c),l^=1),new y(s,d,l)}return{seed:f,k2sig:_}}function E(e,n,r={}){e=Yo(`message`,e);let{seed:a,k2sig:s}=T(e,n,r);return ts(t.outputLen,o.BYTES,i)(a,s)}function D(e){let t,n=typeof e==`string`||Or(e),r=!n&&typeof e==`object`&&!!e&&typeof e.r==`bigint`&&typeof e.s==`bigint`;if(!n&&!r)throw Error(`invalid signature, expected Uint8Array, hex string or Signature instance`);if(r)t=new y(e.r,e.s);else if(n){try{t=y.fromBytes(Yo(`sig`,e),`der`)}catch(e){if(!(e instanceof _c.Err))throw e}if(!t)try{t=y.fromBytes(Yo(`sig`,e),`compact`)}catch{return!1}}return t||!1}function O(t,n,r,i={}){let{lowS:a,prehash:s,format:c}=gc(i,m);if(r=Yo(`publicKey`,r),n=w(Yo(`message`,n),s),`strict`in i)throw Error(`options.strict was renamed to lowS`);let l=c===void 0?D(t):y.fromBytes(Yo(`sig`,t),c);if(l===!1)return!1;try{let t=e.fromBytes(r);if(a&&l.hasHighS())return!1;let{r:i,s}=l,c=x(n),u=o.inv(s),d=o.create(c*u),f=o.create(i*u),p=e.BASE.multiplyUnsafe(d).add(t.multiplyUnsafe(f));return!p.is0()&&o.create(p.x)===i}catch{return!1}}function k(e,t,n={}){let{prehash:r}=gc(n,m);return t=w(t,r),y.fromBytes(e,`recovered`).recoverPublicKey(t).toBytes()}return Object.freeze({keygen:l,getPublicKey:u,getSharedSecret:d,utils:f,lengths:p,Point:e,sign:E,verify:O,recoverPublicKey:k,Signature:y,hash:t})}function kc(e){let t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},n=e.Fp,r=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(e=>Math.ceil(e/2)))):void 0;return{CURVE:t,curveOpts:{Fp:n,Fn:ks(t.n,{BITS:e.nBitLength,allowedLengths:r,modFromBytes:e.wrapPrivateKey}),allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes}}}function Ac(e){let{CURVE:t,curveOpts:n}=kc(e),r={hmac:e.hmac,randomBytes:e.randomBytes,lowS:e.lowS,bits2int:e.bits2int,bits2int_modN:e.bits2int_modN};return{CURVE:t,curveOpts:n,hash:e.hash,ecdsaOpts:r}}function jc(e,t){let n=t.Point;return Object.assign({},t,{ProjectivePoint:n,CURVE:Object.assign({},e,Os(n.Fn.ORDER,n.Fn.BITS))})}function Mc(e){let{CURVE:t,curveOpts:n,hash:r,ecdsaOpts:i}=Ac(e);return jc(e,Oc(wc(t,n),r,i))}function Nc(e,t){let n=t=>Mc({...e,hash:t});return{...n(t),create:n}}var Pc={p:BigInt(`0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff`),n:BigInt(`0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551`),h:BigInt(1),a:BigInt(`0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc`),b:BigInt(`0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b`),Gx:BigInt(`0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296`),Gy:BigInt(`0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5`)},Fc={p:BigInt(`0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff`),n:BigInt(`0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973`),h:BigInt(1),a:BigInt(`0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc`),b:BigInt(`0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef`),Gx:BigInt(`0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7`),Gy:BigInt(`0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f`)},Ic={p:BigInt(`0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`),n:BigInt(`0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409`),h:BigInt(1),a:BigInt(`0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc`),b:BigInt(`0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00`),Gx:BigInt(`0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66`),Gy:BigInt(`0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650`)},Lc=ks(Pc.p),Rc=ks(Fc.p),zc=ks(Ic.p),Bc=Nc({...Pc,Fp:Lc,lowS:!1},Ri);Nc({...Fc,Fp:Rc,lowS:!1},Bi),Nc({...Ic,Fp:zc,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},zi);var Vc=Bc,Hc=`base10`,Uc=`base16`,Wc=`base64pad`,Gc=`base64url`,Kc=`utf8`,qc=0,Jc=1,Yc=12,Xc=32;function Zc(){let e=fc.utils.randomPrivateKey(),t=fc.getPublicKey(e);return{privateKey:y(e,Uc),publicKey:y(t,Uc)}}function Qc(){let e=ti(Xc);return y(e,Uc)}function $c(e,t){let n=Lo(Ro,fc.getSharedSecret(te(e,Uc),te(t,Uc)),void 0,void 0,Xc);return y(n,Uc)}function el(e){let t=Ro(te(e,Uc));return y(t,Uc)}function tl(e){let t=Ro(te(e,Kc));return y(t,Uc)}function nl(e){return te(`${e}`,Hc)}function rl(e){return Number(y(e,Hc))}function il(e){return e.replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function al(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=(4-t.length%4)%4;return t+`=`.repeat(n)}function ol(e){let t=nl(typeof e.type<`u`?e.type:0);if(rl(t)===1&&typeof e.senderPublicKey>`u`)throw Error(`Missing sender public key for type 1 envelope`);let n=typeof e.senderPublicKey<`u`?te(e.senderPublicKey,Uc):void 0,r=typeof e.iv<`u`?te(e.iv,Uc):ti(Yc),i=ul({type:t,sealed:Ao(te(e.symKey,Uc),r).encrypt(te(e.message,Kc)),iv:r,senderPublicKey:n});return e.encoding===`base64url`?il(i):i}function sl(e){let t=te(e.symKey,Uc),{sealed:n,iv:r}=dl({encoded:e.encoded,encoding:e.encoding}),i=Ao(t,r).decrypt(n);if(i===null)throw Error(`Failed to decrypt`);return y(i,Kc)}function cl(e,t){let n=nl(2),r=ti(Yc),i=ul({type:n,sealed:te(e,Kc),iv:r});return t===`base64url`?il(i):i}function ll(e,t){let{sealed:n}=dl({encoded:e,encoding:t});return y(n,Kc)}function ul(e){if(rl(e.type)===2)return y(h([e.type,e.sealed]),Wc);if(rl(e.type)===1){if(typeof e.senderPublicKey>`u`)throw Error(`Missing sender public key for type 1 envelope`);return y(h([e.type,e.senderPublicKey,e.iv,e.sealed]),Wc)}return y(h([e.type,e.iv,e.sealed]),Wc)}function dl(e){let t=(e.encoding||`base64pad`)===`base64url`?al(e.encoded):e.encoded,n=te(t,Wc),r=n.slice(qc,Jc),i=Jc;if(rl(r)===1){let e=n.slice(i,33),t=n.slice(33,45);return{type:r,sealed:n.slice(45),iv:t,senderPublicKey:e}}if(rl(r)===2)return{type:r,sealed:n.slice(i),iv:ti(Yc)};let a=n.slice(i,13);return{type:r,sealed:n.slice(13),iv:a}}function fl(e,t){let n=dl({encoded:e,encoding:t?.encoding});return pl({type:rl(n.type),senderPublicKey:typeof n.senderPublicKey<`u`?y(n.senderPublicKey,Uc):void 0,receiverPublicKey:t?.receiverPublicKey})}function pl(e){let t=e?.type||0;if(t===1){if(typeof e?.senderPublicKey>`u`)throw Error(`missing sender public key`);if(typeof e?.receiverPublicKey>`u`)throw Error(`missing receiver public key`)}return{type:t,senderPublicKey:e?.senderPublicKey,receiverPublicKey:e?.receiverPublicKey}}function ml(e){return e.type===1&&typeof e.senderPublicKey==`string`&&typeof e.receiverPublicKey==`string`}function hl(e){return e.type===2}function gl(e){let t=Buffer.from(e.x,`base64`),n=Buffer.from(e.y,`base64`);return h([new Uint8Array([4]),t,n])}function _l(e,t){let[n,r,i]=e.split(`.`),a=Buffer.from(al(i),`base64`);if(a.length!==64)throw Error(`Invalid signature length`);let o=a.slice(0,32),s=a.slice(32,64),l=Ro(`${n}.${r}`),u=gl(t);if(!Vc.verify(h([o,s]),l,u))throw Error(`Invalid signature`);return c(e).payload}function vl(e){return e?.relay||{protocol:`irn`}}function yl(e){let t=ne[e];if(typeof t>`u`)throw Error(`Relay Protocol not supported: ${e}`);return t}var bl=Object.defineProperty,xl=Object.defineProperties,Sl=Object.getOwnPropertyDescriptors,Cl=Object.getOwnPropertySymbols,wl=Object.prototype.hasOwnProperty,Tl=Object.prototype.propertyIsEnumerable,El=(e,t,n)=>t in e?bl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dl=(e,t)=>{for(var n in t||={})wl.call(t,n)&&El(e,n,t[n]);if(Cl)for(var n of Cl(t))Tl.call(t,n)&&El(e,n,t[n]);return e},Ol=(e,t)=>xl(e,Sl(t));function kl(e,t=`-`){let n={},r=`relay`+t;return Object.keys(e).forEach(t=>{if(t.startsWith(r)){let i=t.replace(r,``),a=e[t];n[i]=a}}),n}function Al(e){if(!e.includes(`wc:`)){let t=tr(e);t!=null&&t.includes(`wc:`)&&(e=t)}e=e.includes(`wc://`)?e.replace(`wc://`,``):e,e=e.includes(`wc:`)?e.replace(`wc:`,``):e;let t=e.indexOf(`:`),n=e.indexOf(`?`)===-1?void 0:e.indexOf(`?`),r=e.substring(0,t),i=e.substring(t+1,n).split(`@`),a=typeof n<`u`?e.substring(n):``,o=new URLSearchParams(a),s=Object.fromEntries(o.entries()),c=typeof s.methods==`string`?s.methods.split(`,`):void 0;return{protocol:r,topic:jl(i[0]),version:parseInt(i[1],10),symKey:s.symKey,relay:kl(s),methods:c,expiryTimestamp:s.expiryTimestamp?parseInt(s.expiryTimestamp,10):void 0}}function jl(e){return e.startsWith(`//`)?e.substring(2):e}function Ml(e,t=`-`){let n={};return Object.keys(e).forEach(r=>{let i=r,a=`relay`+t+i;e[i]&&(n[a]=e[i])}),n}function Nl(e){let t=new URLSearchParams,n=Dl(Dl(Ol(Dl({},Ml(e.relay)),{symKey:e.symKey}),e.expiryTimestamp&&{expiryTimestamp:e.expiryTimestamp.toString()}),e.methods&&{methods:e.methods.join(`,`)});return Object.entries(n).sort(([e],[t])=>e.localeCompare(t)).forEach(([e,n])=>{n!==void 0&&t.append(e,String(n))}),`${e.protocol}:${e.topic}@${e.version}?${t}`}function Pl(e,t,n){return`${e}?wc_ev=${n}&topic=${t}`}var Fl=Object.defineProperty,Il=Object.defineProperties,Ll=Object.getOwnPropertyDescriptors,Rl=Object.getOwnPropertySymbols,zl=Object.prototype.hasOwnProperty,Bl=Object.prototype.propertyIsEnumerable,Vl=(e,t,n)=>t in e?Fl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Hl=(e,t)=>{for(var n in t||={})zl.call(t,n)&&Vl(e,n,t[n]);if(Rl)for(var n of Rl(t))Bl.call(t,n)&&Vl(e,n,t[n]);return e},Ul=(e,t)=>Il(e,Ll(t));function Wl(e){let t=[];return e.forEach(e=>{let[n,r]=e.split(`:`);t.push(`${n}:${r}`)}),t}function Gl(e){let t=[];return Object.values(e).forEach(e=>{t.push(...Wl(e.accounts))}),t}function Kl(e,t){let n=[];return Object.values(e).forEach(e=>{Wl(e.accounts).includes(t)&&n.push(...e.methods)}),n}function ql(e,t){let n=[];return Object.values(e).forEach(e=>{Wl(e.accounts).includes(t)&&n.push(...e.events)}),n}function Jl(e){return e.includes(`:`)}function Yl(e){return Jl(e)?e.split(`:`)[0]:e}function Xl(e){let t={};if(!ru(e))return t;for(let[n,r]of Object.entries(e)){let e=Jl(n)?[n]:r.chains,i=r.methods||[],a=r.events||[],o=Yl(n);t[o]=Ul(Hl({},t[o]),{chains:Wn(e,t[o]?.chains),methods:Wn(i,t[o]?.methods),events:Wn(a,t[o]?.events)})}return t}function Zl(e){let t={};return e?.forEach(e=>{var n;let[r,i]=e.split(`:`);t[r]||(t[r]={accounts:[],chains:[],events:[],methods:[]}),t[r].accounts.push(e),(n=t[r].chains)==null||n.push(`${r}:${i}`)}),t}function Ql(e,t){t=t.map(e=>e.replace(`did:pkh:`,``));let n=Zl(t);for(let[t,r]of Object.entries(n))r.methods=r.methods?Wn(r.methods,e):e,r.events=[`chainChanged`,`accountsChanged`];return n}function $l(e,t){let n=Xl(e),r=Xl(t),i={},a=Object.keys(n).concat(Object.keys(r));for(let e of a)i[e]={chains:Wn(n[e]?.chains,r[e]?.chains),methods:Wn(n[e]?.methods,r[e]?.methods),events:Wn(n[e]?.events,r[e]?.events)};return i}var eu={INVALID_METHOD:{message:`Invalid method.`,code:1001},INVALID_EVENT:{message:`Invalid event.`,code:1002},INVALID_UPDATE_REQUEST:{message:`Invalid update request.`,code:1003},INVALID_EXTEND_REQUEST:{message:`Invalid extend request.`,code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:`Invalid session settle request.`,code:1005},UNAUTHORIZED_METHOD:{message:`Unauthorized method.`,code:3001},UNAUTHORIZED_EVENT:{message:`Unauthorized event.`,code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:`Unauthorized update request.`,code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:`Unauthorized extend request.`,code:3004},USER_REJECTED:{message:`User rejected.`,code:5e3},USER_REJECTED_CHAINS:{message:`User rejected chains.`,code:5001},USER_REJECTED_METHODS:{message:`User rejected methods.`,code:5002},USER_REJECTED_EVENTS:{message:`User rejected events.`,code:5003},UNSUPPORTED_CHAINS:{message:`Unsupported chains.`,code:5100},UNSUPPORTED_METHODS:{message:`Unsupported methods.`,code:5101},UNSUPPORTED_EVENTS:{message:`Unsupported events.`,code:5102},UNSUPPORTED_ACCOUNTS:{message:`Unsupported accounts.`,code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:`Unsupported namespace key.`,code:5104},USER_DISCONNECTED:{message:`User disconnected.`,code:6e3},SESSION_SETTLEMENT_FAILED:{message:`Session settlement failed.`,code:7e3},WC_METHOD_UNSUPPORTED:{message:`Unsupported wc_ method.`,code:10001}},tu={NOT_INITIALIZED:{message:`Not initialized.`,code:1},NO_MATCHING_KEY:{message:`No matching key.`,code:2},RESTORE_WILL_OVERRIDE:{message:`Restore will override.`,code:3},RESUBSCRIBED:{message:`Resubscribed.`,code:4},MISSING_OR_INVALID:{message:`Missing or invalid.`,code:5},EXPIRED:{message:`Expired.`,code:6},UNKNOWN_TYPE:{message:`Unknown type.`,code:7},MISMATCHED_TOPIC:{message:`Mismatched topic.`,code:8},NON_CONFORMING_NAMESPACES:{message:`Non conforming namespaces.`,code:9}};function H(e,t){let{message:n,code:r}=tu[e];return{message:t?`${n} ${t}`:n,code:r}}function U(e,t){let{message:n,code:r}=eu[e];return{message:t?`${n} ${t}`:n,code:r}}function nu(e,t){return Array.isArray(e)?typeof t<`u`&&e.length?e.every(t):!0:!1}function ru(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function iu(e){return typeof e>`u`}function W(e,t){return t&&iu(e)?!0:typeof e==`string`&&!!e.trim().length}function au(e,t){return t&&iu(e)?!0:typeof e==`number`&&!isNaN(e)}function ou(e,t){let{requiredNamespaces:n}=t,r=Object.keys(e.namespaces),i=Object.keys(n),a=!0;return Nn(i,r)?(r.forEach(t=>{let{accounts:r,methods:i,events:o}=e.namespaces[t],s=Wl(r),c=n[t];(!Nn(sn(t,c),s)||!Nn(c.methods,i)||!Nn(c.events,o))&&(a=!1)}),a):!1}function su(e){return W(e,!1)&&e.includes(`:`)?e.split(`:`).length===2:!1}function cu(e){if(W(e,!1)&&e.includes(`:`)){let t=e.split(`:`);if(t.length===3){let e=t[0]+`:`+t[1];return!!t[2]&&su(e)}}return!1}function lu(e){function t(e){try{return typeof new URL(e)<`u`}catch{return!1}}try{if(W(e,!1))return t(e)?!0:t(tr(e))}catch{}return!1}function uu(e){return e?.proposer?.publicKey}function du(e){return e?.topic}function fu(e,t){let n=null;return W(e?.publicKey,!1)||(n=H(`MISSING_OR_INVALID`,`${t} controller public key should be a string`)),n}function pu(e){let t=!0;return nu(e)?e.length&&(t=e.every(e=>W(e,!1))):t=!1,t}function mu(e,t,n){let r=null;return nu(t)&&t.length?t.forEach(e=>{r||su(e)||(r=U(`UNSUPPORTED_CHAINS`,`${n}, chain ${e} should be a string and conform to "namespace:chainId" format`))}):su(e)||(r=U(`UNSUPPORTED_CHAINS`,`${n}, chains must be defined as "namespace:chainId" e.g. "eip155:1": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: ["eip155:1", "eip155:5"] }`)),r}function hu(e,t,n){let r=null;return Object.entries(e).forEach(([e,i])=>{if(r)return;let a=mu(e,sn(e,i),`${t} ${n}`);a&&(r=a)}),r}function gu(e,t){let n=null;return nu(e)?e.forEach(e=>{n||cu(e)||(n=U(`UNSUPPORTED_ACCOUNTS`,`${t}, account ${e} should be a string and conform to "namespace:chainId:address" format`))}):n=U(`UNSUPPORTED_ACCOUNTS`,`${t}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),n}function _u(e,t){let n=null;return Object.values(e).forEach(e=>{if(n)return;let r=gu(e?.accounts,`${t} namespace`);r&&(n=r)}),n}function vu(e,t){let n=null;return pu(e?.methods)?pu(e?.events)||(n=U(`UNSUPPORTED_EVENTS`,`${t}, events should be an array of strings or empty array for no events`)):n=U(`UNSUPPORTED_METHODS`,`${t}, methods should be an array of strings or empty array for no methods`),n}function yu(e,t){let n=null;return Object.values(e).forEach(e=>{if(n)return;let r=vu(e,`${t}, namespace`);r&&(n=r)}),n}function bu(e,t,n){let r=null;if(e&&ru(e)){let i=yu(e,t);i&&(r=i);let a=hu(e,t,n);a&&(r=a)}else r=H(`MISSING_OR_INVALID`,`${t}, ${n} should be an object with data`);return r}function xu(e,t){let n=null;if(e&&ru(e)){let r=yu(e,t);r&&(n=r);let i=_u(e,t);i&&(n=i)}else n=H(`MISSING_OR_INVALID`,`${t}, namespaces should be an object with data`);return n}function Su(e){return W(e.protocol,!0)}function Cu(e,t){let n=!1;return t&&!e?n=!0:e&&nu(e)&&e.length&&e.forEach(e=>{n=Su(e)}),n}function wu(e){return typeof e==`number`}function Tu(e){return typeof e<`u`&&!0}function Eu(e){return!(!e||typeof e!=`object`||!e.code||!au(e.code,!1)||!e.message||!W(e.message,!1))}function Du(e){return!(iu(e)||!W(e.method,!1))}function Ou(e){return!(iu(e)||iu(e.result)&&iu(e.error)||!au(e.id,!1)||!W(e.jsonrpc,!1))}function ku(e){return!(iu(e)||!W(e.name,!1))}function Au(e,t){return!(!su(t)||!Gl(e).includes(t))}function ju(e,t,n){return W(n,!1)?Kl(e,t).includes(n):!1}function Mu(e,t,n){return W(n,!1)?ql(e,t).includes(n):!1}function Nu(e,t,n){let r=null,i=Pu(e),a=Iu(t),o=Object.keys(i),s=Object.keys(a),c=Fu(Object.keys(e)),l=Fu(Object.keys(t)),u=c.filter(e=>!l.includes(e));return u.length&&(r=H(`NON_CONFORMING_NAMESPACES`,`${n} namespaces keys don't satisfy requiredNamespaces.
|
|
7
|
+
Required: ${u.toString()}
|
|
8
|
+
Received: ${Object.keys(t).toString()}`)),Nn(o,s)||(r=H(`NON_CONFORMING_NAMESPACES`,`${n} namespaces chains don't satisfy required namespaces.
|
|
9
|
+
Required: ${o.toString()}
|
|
10
|
+
Approved: ${s.toString()}`)),Object.keys(t).forEach(e=>{if(!e.includes(`:`)||r)return;let i=Wl(t[e].accounts);i.includes(e)||(r=H(`NON_CONFORMING_NAMESPACES`,`${n} namespaces accounts don't satisfy namespace accounts for ${e}
|
|
11
|
+
Required: ${e}
|
|
12
|
+
Approved: ${i.toString()}`))}),o.forEach(e=>{r||(Nn(i[e].methods,a[e].methods)?Nn(i[e].events,a[e].events)||(r=H(`NON_CONFORMING_NAMESPACES`,`${n} namespaces events don't satisfy namespace events for ${e}`)):r=H(`NON_CONFORMING_NAMESPACES`,`${n} namespaces methods don't satisfy namespace methods for ${e}`))}),r}function Pu(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 Fu(e){return[...new Set(e.map(e=>e.includes(`:`)?e.split(`:`)[0]:e))]}function Iu(e){let t={};return Object.keys(e).forEach(n=>{n.includes(`:`)?t[n]=e[n]:Wl(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 Lu(e,t){return au(e,!1)&&e<=t.max&&e>=t.min}function Ru(){let e=wn();return new Promise(t=>{switch(e){case vn.browser:t(zu());break;case vn.reactNative:t(Bu());break;case vn.node:t(Vu());break;default:t(!0)}})}function zu(){return Cn()&&navigator?.onLine}async function Bu(){return bn()&&typeof global<`u`&&global!=null&&global.NetInfo?(await(global==null?void 0:global.NetInfo.fetch()))?.isConnected:!0}function Vu(){return!0}function Hu(e){switch(wn()){case vn.browser:Uu(e);break;case vn.reactNative:Wu(e);break;case vn.node:}}function Uu(e){!bn()&&Cn()&&(window.addEventListener(`online`,()=>e(!0)),window.addEventListener(`offline`,()=>e(!1)))}function Wu(e){bn()&&typeof global<`u`&&global!=null&&global.NetInfo&&global?.NetInfo.addEventListener(t=>e(t?.isConnected))}function Gu(){return Cn()&&(0,tn.getDocument)()?(0,tn.getDocument)()?.visibilityState===`visible`:!0}var Ku={},qu=class{static get(e){return Ku[e]}static set(e,t){Ku[e]=t}static delete(e){delete Ku[e]}};function Ju(e){let t=E.decode(e);if(t.length<33)throw Error(`Too short to contain a public key`);return t.slice(1,33)}function Yu({publicKey:e,signature:t,payload:n}){let r=Zu(n.method),i=128|parseInt(n.version?.toString()||`4`),a=$u(n.address),o=n.era===`00`?new Uint8Array([0]):Zu(n.era);if(o.length!==1&&o.length!==2)throw Error(`Invalid era length`);let s=parseInt(n.nonce,16),c=new Uint8Array([s&255,s>>8&255]),l=td(BigInt(`0x${Qu(n.tip)}`)),u=new Uint8Array([0,...e,a,...t,...o,...c,...l,...r]),d=ed(u.length+1);return new Uint8Array([...d,i,...u])}function Xu(e){let t=Zu(e),n=(0,rn.blake2b)(t,void 0,32);return`0x`+Buffer.from(n).toString(`hex`)}function Zu(e){return new Uint8Array(e.replace(/^0x/,``).match(/.{1,2}/g).map(e=>parseInt(e,16)))}function Qu(e){return e.startsWith(`0x`)?e.slice(2):e}function $u(e){let t=E.decode(e)[0];return t===42?0:t===60?2:1}function ed(e){if(e<64)return new Uint8Array([e<<2]);if(e<16384){let t=e<<2|1;return new Uint8Array([t&255,t>>8&255])}if(e<1<<30){let t=e<<2|2;return new Uint8Array([t&255,t>>8&255,t>>16&255,t>>24&255])}throw Error(`Compact encoding > 2^30 not supported`)}function td(e){if(e<BigInt(1)<<BigInt(6))return new Uint8Array([Number(e<<BigInt(2))]);if(e<BigInt(1)<<BigInt(14)){let t=e<<BigInt(2)|BigInt(1);return new Uint8Array([Number(t&BigInt(255)),Number(t>>BigInt(8)&BigInt(255))])}if(e<BigInt(1)<<BigInt(30)){let t=e<<BigInt(2)|BigInt(2);return new Uint8Array([Number(t&BigInt(255)),Number(t>>BigInt(8)&BigInt(255)),Number(t>>BigInt(16)&BigInt(255)),Number(t>>BigInt(24)&BigInt(255))])}throw Error(`BigInt compact encoding not supported > 2^30`)}function nd(e){let t=Uint8Array.from(Buffer.from(e.signature,`hex`)),n=Yu({publicKey:Ju(e.transaction.address),signature:t,payload:e.transaction});return Xu(Buffer.from(n).toString(`hex`))}var rd=`core`,id=`wc@2:${rd}:`,ad={name:rd,logger:`error`},od={database:`:memory:`},sd=`crypto`,cd=`client_ed25519_seed`,ld=R.ONE_DAY,ud=`keychain`,dd=`messages`,fd=R.SIX_HOURS,pd=`publisher`,md=`relayer`,G={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`},hd={payload:`payload`,connect:`connect`,disconnect:`disconnect`,error:`error`},gd=`2.21.9`,K={link_mode:`link_mode`,relay:`relay`},_d={inbound:`inbound`,outbound:`outbound`},vd=`WALLETCONNECT_CLIENT_ID`,yd={created:`subscription_created`,deleted:`subscription_deleted`,expired:`subscription_expired`,disabled:`subscription_disabled`,sync:`subscription_sync`,resubscribed:`subscription_resubscribed`},bd=`subscription`;R.FIVE_SECONDS*1e3;var xd=`pairing`,Sd={wc_pairingDelete:{req:{ttl:R.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:R.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:R.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:R.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:R.ONE_DAY,prompt:!1,tag:0},res:{ttl:R.ONE_DAY,prompt:!1,tag:0}}},Cd={create:`pairing_create`,expire:`pairing_expire`,delete:`pairing_delete`,ping:`pairing_ping`},wd={created:`history_created`,updated:`history_updated`,deleted:`history_deleted`,sync:`history_sync`},Td=`history`,Ed=`expirer`,Dd={created:`expirer_created`,deleted:`expirer_deleted`,expired:`expirer_expired`,sync:`expirer_sync`},Od=`verify-api`,kd=`https://verify.walletconnect.com`,Ad=`https://verify.walletconnect.org`,jd=`${Ad}/v3`,Md=[kd,Ad],Nd=`echo`,Pd=`https://echo.walletconnect.com`,Fd={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`},Id={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`},Ld={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`},Rd={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`},zd={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`},Bd={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`},Vd=.1,Hd=`event-client`,Ud=`https://pulse.walletconnect.org/batch`;function Wd(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 Gd=Wd,Kd=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`)},qd=e=>new TextEncoder().encode(e),Jd=e=>new TextDecoder().decode(e),Yd=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`)}},Xd=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))}throw Error(`Can only multibase decode strings`)}or(e){return Qd(this,e)}},Zd=class{constructor(e){this.decoders=e}or(e){return Qd(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`)}},Qd=(e,t)=>new Zd({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),$d=class{constructor(e,t,n,r){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=r,this.encoder=new Yd(e,t,n),this.decoder=new Xd(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},ef=({name:e,prefix:t,encode:n,decode:r})=>new $d(e,t,n,r),tf=({prefix:e,name:t,alphabet:n})=>{let{encode:r,decode:i}=Gd(n,t);return ef({prefix:e,name:t,encode:r,decode:e=>Kd(i(e))})},nf=(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},rf=(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},af=({name:e,prefix:t,bitsPerChar:n,alphabet:r})=>ef({prefix:t,name:e,encode(e){return rf(e,r,n)},decode(t){return nf(t,r,n,e)}}),of=ef({prefix:`\0`,name:`identity`,encode:e=>Jd(e),decode:e=>qd(e)}),sf=Object.freeze({__proto__:null,identity:of}),cf=af({prefix:`0`,name:`base2`,alphabet:`01`,bitsPerChar:1}),lf=Object.freeze({__proto__:null,base2:cf}),uf=af({prefix:`7`,name:`base8`,alphabet:`01234567`,bitsPerChar:3}),df=Object.freeze({__proto__:null,base8:uf}),ff=tf({prefix:`9`,name:`base10`,alphabet:`0123456789`}),pf=Object.freeze({__proto__:null,base10:ff}),mf=af({prefix:`f`,name:`base16`,alphabet:`0123456789abcdef`,bitsPerChar:4}),hf=af({prefix:`F`,name:`base16upper`,alphabet:`0123456789ABCDEF`,bitsPerChar:4}),gf=Object.freeze({__proto__:null,base16:mf,base16upper:hf}),_f=af({prefix:`b`,name:`base32`,alphabet:`abcdefghijklmnopqrstuvwxyz234567`,bitsPerChar:5}),vf=af({prefix:`B`,name:`base32upper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`,bitsPerChar:5}),yf=af({prefix:`c`,name:`base32pad`,alphabet:`abcdefghijklmnopqrstuvwxyz234567=`,bitsPerChar:5}),bf=af({prefix:`C`,name:`base32padupper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=`,bitsPerChar:5}),xf=af({prefix:`v`,name:`base32hex`,alphabet:`0123456789abcdefghijklmnopqrstuv`,bitsPerChar:5}),Sf=af({prefix:`V`,name:`base32hexupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV`,bitsPerChar:5}),Cf=af({prefix:`t`,name:`base32hexpad`,alphabet:`0123456789abcdefghijklmnopqrstuv=`,bitsPerChar:5}),wf=af({prefix:`T`,name:`base32hexpadupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV=`,bitsPerChar:5}),Tf=af({prefix:`h`,name:`base32z`,alphabet:`ybndrfg8ejkmcpqxot1uwisza345h769`,bitsPerChar:5}),Ef=Object.freeze({__proto__:null,base32:_f,base32upper:vf,base32pad:yf,base32padupper:bf,base32hex:xf,base32hexupper:Sf,base32hexpad:Cf,base32hexpadupper:wf,base32z:Tf}),Df=tf({prefix:`k`,name:`base36`,alphabet:`0123456789abcdefghijklmnopqrstuvwxyz`}),Of=tf({prefix:`K`,name:`base36upper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ`}),kf=Object.freeze({__proto__:null,base36:Df,base36upper:Of}),Af=tf({name:`base58btc`,prefix:`z`,alphabet:`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`}),jf=tf({name:`base58flickr`,prefix:`Z`,alphabet:`123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ`}),Mf=Object.freeze({__proto__:null,base58btc:Af,base58flickr:jf}),Nf=af({prefix:`m`,name:`base64`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,bitsPerChar:6}),Pf=af({prefix:`M`,name:`base64pad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`,bitsPerChar:6}),Ff=af({prefix:`u`,name:`base64url`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,bitsPerChar:6}),If=af({prefix:`U`,name:`base64urlpad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=`,bitsPerChar:6}),Lf=Object.freeze({__proto__:null,base64:Nf,base64pad:Pf,base64url:Ff,base64urlpad:If}),Rf=Array.from(`🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂`),zf=Rf.reduce((e,t,n)=>(e[n]=t,e),[]),Bf=Rf.reduce((e,t,n)=>(e[t.codePointAt(0)]=n,e),[]);function Vf(e){return e.reduce((e,t)=>(e+=zf[t],e),``)}function Hf(e){let t=[];for(let n of e){let e=Bf[n.codePointAt(0)];if(e===void 0)throw Error(`Non-base256emoji character: ${n}`);t.push(e)}return new Uint8Array(t)}var Uf=ef({prefix:`🚀`,name:`base256emoji`,encode:Vf,decode:Hf}),Wf=Object.freeze({__proto__:null,base256emoji:Uf}),Gf=Yf,Kf=128,qf=-128,Jf=2**31;function Yf(e,t,n){t||=[],n||=0;for(var r=n;e>=Jf;)t[n++]=e&255|Kf,e/=128;for(;e&qf;)t[n++]=e&255|Kf,e>>>=7;return t[n]=e|0,Yf.bytes=n-r+1,t}var Xf=$f,Zf=128,Qf=127;function $f(e,t){var n=0,t=t||0,r=0,i=t,a,o=e.length;do{if(i>=o)throw $f.bytes=0,RangeError(`Could not decode varint`);a=e[i++],n+=r<28?(a&Qf)<<r:(a&Qf)*2**r,r+=7}while(a>=Zf);return $f.bytes=i-t,n}var ep=128,tp=2**14,np=2**21,rp=2**28,ip=2**35,ap=2**42,op=2**49,sp=2**56,cp=2**63,lp={encode:Gf,decode:Xf,encodingLength:function(e){return e<ep?1:e<tp?2:e<np?3:e<rp?4:e<ip?5:e<ap?6:e<op?7:e<sp?8:e<cp?9:10}},up=(e,t,n=0)=>(lp.encode(e,t,n),t),dp=e=>lp.encodingLength(e),fp=(e,t)=>{let n=t.byteLength,r=dp(e),i=r+dp(n),a=new Uint8Array(i+n);return up(e,a,0),up(n,a,r),a.set(t,i),new pp(e,n,t,a)},pp=class{constructor(e,t,n,r){this.code=e,this.size=t,this.digest=n,this.bytes=r}},mp=({name:e,code:t,encode:n})=>new hp(e,t,n),hp=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?fp(this.code,t):t.then(e=>fp(this.code,e))}throw Error(`Unknown type, must be binary type`)}},gp=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),_p=mp({name:`sha2-256`,code:18,encode:gp(`SHA-256`)}),vp=mp({name:`sha2-512`,code:19,encode:gp(`SHA-512`)}),yp=Object.freeze({__proto__:null,sha256:_p,sha512:vp}),bp=0,xp=`identity`,Sp=Kd,Cp=Object.freeze({__proto__:null,identity:{code:bp,name:xp,encode:Sp,digest:e=>fp(bp,Sp(e))}});new TextEncoder,new TextDecoder;var wp={...sf,...lf,...df,...pf,...gf,...Ef,...kf,...Mf,...Lf,...Wf};({...yp,...Cp});function Tp(e){return globalThis.Buffer==null?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function Ep(e=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?Tp(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function Dp(e,t,n,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:n},decoder:{decode:r}}}var Op=Dp(`utf8`,`u`,e=>`u`+new TextDecoder(`utf8`).decode(e),e=>new TextEncoder().encode(e.substring(1))),kp=Dp(`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=Ep(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}),Ap={utf8:Op,"utf-8":Op,hex:wp.base16,latin1:kp,ascii:kp,binary:kp,...wp};function jp(e,t=`utf8`){let n=Ap[t];if(!n)throw Error(`Unsupported encoding "${t}"`);return(t===`utf8`||t===`utf-8`)&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Tp(globalThis.Buffer.from(e,`utf-8`)):n.decoder.decode(`${n.prefix}${e}`)}var Mp=Object.defineProperty,Np=(e,t,n)=>t in e?Mp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Pp=(e,t,n)=>Np(e,typeof t==`symbol`?t:t+``,n),Fp=class{constructor(e,t){this.core=e,this.logger=t,Pp(this,`keychain`,new Map),Pp(this,`name`,ud),Pp(this,`version`,`0.3`),Pp(this,`initialized`,!1),Pp(this,`storagePrefix`,id),Pp(this,`init`,async()=>{if(!this.initialized){let e=await this.getKeyChain();typeof e<`u`&&(this.keychain=e),this.initialized=!0}}),Pp(this,`has`,e=>(this.isInitialized(),this.keychain.has(e))),Pp(this,`set`,async(e,t)=>{this.isInitialized(),this.keychain.set(e,t),await this.persist()}),Pp(this,`get`,e=>{this.isInitialized();let t=this.keychain.get(e);if(typeof t>`u`){let{message:t}=H(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}),Pp(this,`del`,async e=>{this.isInitialized(),this.keychain.delete(e),await this.persist()}),this.core=e,this.logger=Ke(t,this.name)}get context(){return We(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,Pn(e))}async getKeyChain(){let e=await this.core.storage.getItem(this.storageKey);return typeof e<`u`?Fn(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){let{message:e}=H(`NOT_INITIALIZED`,this.name);throw Error(e)}}},Ip=Object.defineProperty,Lp=(e,t,n)=>t in e?Ip(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Rp=(e,t,n)=>Lp(e,typeof t==`symbol`?t:t+``,n),zp=class{constructor(e,t,n){this.core=e,this.logger=t,Rp(this,`name`,sd),Rp(this,`keychain`),Rp(this,`randomSessionIdentifier`,Qc()),Rp(this,`initialized`,!1),Rp(this,`init`,async()=>{this.initialized||=(await this.keychain.init(),!0)}),Rp(this,`hasKeys`,e=>(this.isInitialized(),this.keychain.has(e))),Rp(this,`getClientId`,async()=>{this.isInitialized();let e=await this.getClientSeed(),t=o(e);return L(t.publicKey)}),Rp(this,`generateKeyPair`,()=>{this.isInitialized();let e=Zc();return this.setPrivateKey(e.publicKey,e.privateKey)}),Rp(this,`signJWT`,async e=>{this.isInitialized();let t=await this.getClientSeed(),n=o(t),r=this.randomSessionIdentifier;return await g(r,e,ld,n)}),Rp(this,`generateSharedKey`,(e,t,n)=>{this.isInitialized();let r=$c(this.getPrivateKey(e),t);return this.setSymKey(r,n)}),Rp(this,`setSymKey`,async(e,t)=>{this.isInitialized();let n=t||el(e);return await this.keychain.set(n,e),n}),Rp(this,`deleteKeyPair`,async e=>{this.isInitialized(),await this.keychain.del(e)}),Rp(this,`deleteSymKey`,async e=>{this.isInitialized(),await this.keychain.del(e)}),Rp(this,`encode`,async(e,t,n)=>{this.isInitialized();let r=pl(n),i=p(t);if(hl(r))return cl(i,n?.encoding);if(ml(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 ol({type:o,symKey:a,message:i,senderPublicKey:s,encoding:n?.encoding})}),Rp(this,`decode`,async(e,t,n)=>{this.isInitialized();let r=fl(t,n);if(hl(r)){let e=ll(t,n?.encoding);return s(e)}if(ml(r)){let t=r.receiverPublicKey,n=r.senderPublicKey;e=await this.generateSharedKey(t,n)}try{let r=sl({symKey:this.getSymKey(e),encoded:t,encoding:n?.encoding});return s(r)}catch(t){this.logger.error(`Failed to decode message from topic: '${e}', clientId: '${await this.getClientId()}'`),this.logger.error(t)}}),Rp(this,`getPayloadType`,(e,t=Wc)=>rl(dl({encoded:e,encoding:t}).type)),Rp(this,`getPayloadSenderPublicKey`,(e,t=Wc)=>{let n=dl({encoded:e,encoding:t});return n.senderPublicKey?y(n.senderPublicKey,Uc):void 0}),this.core=e,this.logger=Ke(t,this.name),this.keychain=n||new Fp(this.core,this.logger)}get context(){return We(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(cd)}catch{e=Qc(),await this.keychain.set(cd,e)}return jp(e,`base16`)}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){let{message:e}=H(`NOT_INITIALIZED`,this.name);throw Error(e)}}},Bp=Object.defineProperty,Vp=Object.defineProperties,Hp=Object.getOwnPropertyDescriptors,Up=Object.getOwnPropertySymbols,Wp=Object.prototype.hasOwnProperty,Gp=Object.prototype.propertyIsEnumerable,Kp=(e,t,n)=>t in e?Bp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,qp=(e,t)=>{for(var n in t||={})Wp.call(t,n)&&Kp(e,n,t[n]);if(Up)for(var n of Up(t))Gp.call(t,n)&&Kp(e,n,t[n]);return e},Jp=(e,t)=>Vp(e,Hp(t)),Yp=(e,t,n)=>Kp(e,typeof t==`symbol`?t:t+``,n),Xp=class extends it{constructor(e,t){super(e,t),this.logger=e,this.core=t,Yp(this,`messages`,new Map),Yp(this,`messagesWithoutClientAck`,new Map),Yp(this,`name`,dd),Yp(this,`version`,`0.3`),Yp(this,`initialized`,!1),Yp(this,`storagePrefix`,id),Yp(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}}}),Yp(this,`set`,async(e,t,n)=>{this.isInitialized();let r=tl(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===_d.inbound){let n=this.messagesWithoutClientAck.get(e)||{};this.messagesWithoutClientAck.set(e,Jp(qp({},n),{[r]:t}))}return await this.persist(),r}),Yp(this,`get`,e=>{this.isInitialized();let t=this.messages.get(e);return typeof t>`u`&&(t={}),t}),Yp(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}),Yp(this,`has`,(e,t)=>(this.isInitialized(),typeof this.get(e)[tl(t)]<`u`)),Yp(this,`ack`,async(e,t)=>{this.isInitialized();let n=this.messagesWithoutClientAck.get(e);if(typeof n>`u`)return;let r=tl(t);delete n[r],Object.keys(n).length===0?this.messagesWithoutClientAck.delete(e):this.messagesWithoutClientAck.set(e,n),await this.persist()}),Yp(this,`del`,async e=>{this.isInitialized(),this.messages.delete(e),this.messagesWithoutClientAck.delete(e),await this.persist()}),this.logger=Ke(e,this.name),this.core=t}get context(){return We(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,Pn(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,Pn(e))}async getRelayerMessages(){let e=await this.core.storage.getItem(this.storageKey);return typeof e<`u`?Fn(e):void 0}async getRelayerMessagesWithoutClientAck(){let e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return typeof e<`u`?Fn(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){let{message:e}=H(`NOT_INITIALIZED`,this.name);throw Error(e)}}},Zp=Object.defineProperty,Qp=Object.defineProperties,$p=Object.getOwnPropertyDescriptors,em=Object.getOwnPropertySymbols,tm=Object.prototype.hasOwnProperty,nm=Object.prototype.propertyIsEnumerable,rm=(e,t,n)=>t in e?Zp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,im=(e,t)=>{for(var n in t||={})tm.call(t,n)&&rm(e,n,t[n]);if(em)for(var n of em(t))nm.call(t,n)&&rm(e,n,t[n]);return e},am=(e,t)=>Qp(e,$p(t)),om=(e,t,n)=>rm(e,typeof t==`symbol`?t:t+``,n),sm=class extends at{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,om(this,`events`,new Se.EventEmitter),om(this,`name`,pd),om(this,`queue`,new Map),om(this,`publishTimeout`,(0,R.toMiliseconds)(R.ONE_MINUTE)),om(this,`initialPublishTimeout`,(0,R.toMiliseconds)(R.ONE_SECOND*15)),om(this,`needsTransportRestart`,!1),om(this,`publish`,async(e,t,n)=>{var r,i,a;this.logger.debug(`Publishing Payload`),this.logger.trace({type:`method`,method:`publish`,params:{topic:e,message:t,opts:n}});let o=n?.ttl||fd,s=n?.prompt||!1,c=n?.tag||0,l=n?.id||x().toString(),u=yl(vl().protocol),d={id:l,method:n?.publishMethod||u.publish,params:im({topic:e,message:t,ttl:o,prompt:s,tag:c,attestation:n?.attestation},n?.tvf)},f=`Failed to publish payload, please try again. id:${l} tag:${c}`;try{iu(d.params?.prompt)&&((r=d.params)==null||delete r.prompt),iu(d.params?.tag)&&((i=d.params)==null||delete i.tag);let a=new Promise(async e=>{let t=({id:n})=>{d.id?.toString()===n.toString()&&(this.removeRequestFromQueue(n),this.relayer.events.removeListener(G.publish,t),e())};this.relayer.events.on(G.publish,t);let r=Ln(new Promise((e,t)=>{this.rpcPublish(d,n).then(e).catch(e=>{this.logger.warn(e,e?.message),t(e)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${l} tag:${c}`);try{await r,this.events.removeListener(G.publish,t)}catch(e){this.queue.set(l,{request:d,opts:n,attempt:1}),this.logger.warn(e,e?.message)}});this.logger.trace({type:`method`,method:`publish`,params:{id:l,topic:e,message:t,opts:n}}),await Ln(a,this.publishTimeout,f)}catch(e){if(this.logger.debug(`Failed to Publish Payload`),this.logger.error(e),(a=n?.internal)!=null&&a.throwOnFailedPublish)throw e}finally{this.queue.delete(l)}}),om(this,`publishCustom`,async e=>{var t,n,r;this.logger.debug(`Publishing custom payload`),this.logger.trace({type:`method`,method:`publishCustom`,params:e});let{payload:i,opts:a={}}=e,{attestation:o,tvf:s,publishMethod:c,prompt:l,tag:u,ttl:d=R.FIVE_MINUTES}=a,f=a.id||x().toString(),p=yl(vl().protocol),m=c||p.publish,h={id:f,method:m,params:im(am(im({},i),{ttl:d,prompt:l,tag:u,attestation:o}),s)},g=`Failed to publish custom payload, please try again. id:${f} tag:${u}`;try{iu(h.params?.prompt)&&((t=h.params)==null||delete t.prompt),iu(h.params?.tag)&&((n=h.params)==null||delete n.tag);let e=new Promise(async e=>{let t=({id:n})=>{h.id?.toString()===n.toString()&&(this.removeRequestFromQueue(n),this.relayer.events.removeListener(G.publish,t),e())};this.relayer.events.on(G.publish,t);let n=Ln(new Promise((e,t)=>{this.rpcPublish(h,a).then(e).catch(e=>{this.logger.warn(e,e?.message),t(e)})}),this.initialPublishTimeout,`Failed initial custom payload publish, retrying.... method:${m} id:${f} tag:${u}`);try{await n,this.events.removeListener(G.publish,t)}catch(e){this.queue.set(f,{request:h,opts:a,attempt:1}),this.logger.warn(e,e?.message)}});this.logger.trace({type:`method`,method:`publish`,params:{id:f,payload:i,opts:a}}),await Ln(e,this.publishTimeout,g)}catch(e){if(this.logger.debug(`Failed to Publish Payload`),this.logger.error(e),(r=a?.internal)!=null&&r.throwOnFailedPublish)throw e}finally{this.queue.delete(f)}}),om(this,`on`,(e,t)=>{this.events.on(e,t)}),om(this,`once`,(e,t)=>{this.events.once(e,t)}),om(this,`off`,(e,t)=>{this.events.off(e,t)}),om(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.relayer=e,this.logger=Ke(t,this.name),this.registerEventListeners()}get context(){return We(this.logger)}async rpcPublish(e,t){this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`message`,direction:`outgoing`,request:e});let n=await this.relayer.request(e);return this.relayer.events.emit(G.publish,im(im({},e),t)),this.logger.debug(`Successfully Published Payload`),n}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,t)=>{let n=e.attempt+1;this.queue.set(t,am(im({},e),{attempt:n})),this.logger.warn({},`Publisher: queue->publishing: ${e.request.id}, tag: ${e.request.params?.tag}, attempt: ${n}`),await this.rpcPublish(e.request,e.opts),this.logger.warn({},`Publisher: queue->published: ${e.request.id}`)})}registerEventListeners(){this.relayer.core.heartbeat.on(w.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(G.connection_stalled);return}this.checkQueue()}),this.relayer.on(G.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}},cm=Object.defineProperty,lm=(e,t,n)=>t in e?cm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,um=(e,t,n)=>lm(e,typeof t==`symbol`?t:t+``,n),dm=class{constructor(){um(this,`map`,new Map),um(this,`set`,(e,t)=>{let n=this.get(e);this.exists(e,t)||this.map.set(e,[...n,t])}),um(this,`get`,e=>this.map.get(e)||[]),um(this,`exists`,(e,t)=>this.get(e).includes(t)),um(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)}),um(this,`clear`,()=>{this.map.clear()})}get topics(){return Array.from(this.map.keys())}},fm=Object.defineProperty,pm=Object.defineProperties,mm=Object.getOwnPropertyDescriptors,hm=Object.getOwnPropertySymbols,gm=Object.prototype.hasOwnProperty,_m=Object.prototype.propertyIsEnumerable,vm=(e,t,n)=>t in e?fm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ym=(e,t)=>{for(var n in t||={})gm.call(t,n)&&vm(e,n,t[n]);if(hm)for(var n of hm(t))_m.call(t,n)&&vm(e,n,t[n]);return e},bm=(e,t)=>pm(e,mm(t)),q=(e,t,n)=>vm(e,typeof t==`symbol`?t:t+``,n),xm=class extends ct{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,q(this,`subscriptions`,new Map),q(this,`topicMap`,new dm),q(this,`events`,new Se.EventEmitter),q(this,`name`,bd),q(this,`version`,`0.3`),q(this,`pending`,new Map),q(this,`cached`,[]),q(this,`initialized`,!1),q(this,`storagePrefix`,id),q(this,`subscribeTimeout`,(0,R.toMiliseconds)(R.ONE_MINUTE)),q(this,`initialSubscribeTimeout`,(0,R.toMiliseconds)(R.ONE_SECOND*15)),q(this,`clientId`),q(this,`batchSubscribeTopicsLimit`,500),q(this,`init`,async()=>{this.initialized||(this.logger.trace(`Initialized`),this.registerEventListeners(),await this.restore()),this.initialized=!0}),q(this,`subscribe`,async(e,t)=>{var n;this.isInitialized(),this.logger.debug(`Subscribing Topic`),this.logger.trace({type:`method`,method:`subscribe`,params:{topic:e,opts:t}});try{let r=vl(t),i={topic:e,relay:r,transportType:t?.transportType};(n=t?.internal)!=null&&n.skipSubscribe||this.pending.set(e,i);let a=await this.rpcSubscribe(e,r,t);return typeof a==`string`&&(this.onSubscribe(a,i),this.logger.debug(`Successfully Subscribed Topic`),this.logger.trace({type:`method`,method:`subscribe`,params:{topic:e,opts:t}})),a}catch(e){throw this.logger.debug(`Failed to Subscribe Topic`),this.logger.error(e),e}}),q(this,`unsubscribe`,async(e,t)=>{this.isInitialized(),typeof t?.id<`u`?await this.unsubscribeById(e,t.id,t):await this.unsubscribeByTopic(e,t)}),q(this,`isSubscribed`,e=>new Promise(t=>{t(this.topicMap.topics.includes(e))})),q(this,`isKnownTopic`,e=>new Promise(t=>{t(this.topicMap.topics.includes(e)||this.pending.has(e)||this.cached.some(t=>t.topic===e))})),q(this,`on`,(e,t)=>{this.events.on(e,t)}),q(this,`once`,(e,t)=>{this.events.once(e,t)}),q(this,`off`,(e,t)=>{this.events.off(e,t)}),q(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),q(this,`start`,async()=>{await this.onConnect()}),q(this,`stop`,async()=>{await this.onDisconnect()}),q(this,`restart`,async()=>{await this.restore(),await this.onRestart()}),q(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)}),q(this,`registerEventListeners`,()=>{this.relayer.core.heartbeat.on(w.pulse,async()=>{await this.checkPending()}),this.events.on(yd.created,async e=>{let t=yd.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),await this.persist()}),this.events.on(yd.deleted,async e=>{let t=yd.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),await this.persist()})}),this.relayer=e,this.logger=Ke(t,this.name),this.clientId=``}get context(){return We(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.values.length>0&&(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=vl(n);await this.restartToComplete({topic:e,id:t,relay:r}),await this.rpcUnsubscribe(e,t,r);let i=U(`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){var r;let i=await this.getSubscriptionId(e);if((r=n?.internal)!=null&&r.skipSubscribe)return i;(!n||n?.transportType===K.relay)&&await this.restartToComplete({topic:e,id:e,relay:t});let a={method:yl(t.protocol).subscribe,params:{topic:e}};this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:a});let o=n?.internal?.throwOnFailedPublish;try{if(n?.transportType===K.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(a).catch(e=>this.logger.warn(e))},(0,R.toMiliseconds)(R.ONE_SECOND)),i;let t=await Ln(new Promise(async t=>{let n=r=>{r.topic===e&&(this.events.removeListener(yd.created,n),t(r.id))};this.events.on(yd.created,n);try{let r=await Ln(new Promise((e,t)=>{this.relayer.request(a).catch(e=>{this.logger.warn(e,e?.message),t(e)}).then(e)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener(yd.created,n),t(r)}catch{}}),this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!t&&o)throw Error(`Subscribing to ${e} failed, please try again`);return t?i:null}catch(e){if(this.logger.debug(`Outgoing Relay Subscribe Payload stalled`),this.relayer.events.emit(G.connection_stalled),o)throw e}return null}async rpcBatchSubscribe(e){if(!e.length)return;let t=e[0].relay,n={method:yl(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 Ln(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(G.connection_stalled)}}async rpcBatchFetchMessages(e){if(!e.length)return;let t=e[0].relay,n={method:yl(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 Ln(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(G.connection_stalled)}return r}rpcUnsubscribe(e,t,n){let r={method:yl(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,bm(ym({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(e=>{this.setSubscription(e.id,ym({},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,ym({},t)),this.topicMap.set(t.topic,e),this.events.emit(yd.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}=H(`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(yd.deleted,bm(ym({},n),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(yd.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(yd.resubscribed)}async restore(){try{let e=await this.getRelayerSubscriptions();if(typeof e>`u`||!e.length)return;if(this.subscriptions.size&&!e.every(e=>e.topic===this.subscriptions.get(e.id)?.topic)){let{message:e}=H(`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=>bm(ym({},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 nr((0,R.toMiliseconds)(R.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}=H(`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 tl(e+await this.getClientId())}},Sm=Object.defineProperty,Cm=Object.getOwnPropertySymbols,wm=Object.prototype.hasOwnProperty,Tm=Object.prototype.propertyIsEnumerable,Em=(e,t,n)=>t in e?Sm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dm=(e,t)=>{for(var n in t||={})wm.call(t,n)&&Em(e,n,t[n]);if(Cm)for(var n of Cm(t))Tm.call(t,n)&&Em(e,n,t[n]);return e},J=(e,t,n)=>Em(e,typeof t==`symbol`?t:t+``,n),Om=class extends ot{constructor(e){super(e),J(this,`protocol`,`wc`),J(this,`version`,2),J(this,`core`),J(this,`logger`),J(this,`events`,new Se.EventEmitter),J(this,`provider`),J(this,`messages`),J(this,`subscriber`),J(this,`publisher`),J(this,`name`,md),J(this,`transportExplicitlyClosed`,!1),J(this,`initialized`,!1),J(this,`connectionAttemptInProgress`,!1),J(this,`relayUrl`),J(this,`projectId`),J(this,`packageName`),J(this,`bundleId`),J(this,`hasExperiencedNetworkDisruption`,!1),J(this,`pingTimeout`),J(this,`heartBeatTimeout`,(0,R.toMiliseconds)(R.THIRTY_SECONDS+R.FIVE_SECONDS)),J(this,`reconnectTimeout`),J(this,`connectPromise`),J(this,`reconnectInProgress`,!1),J(this,`requestsInFlight`,[]),J(this,`connectTimeout`,(0,R.toMiliseconds)(R.ONE_SECOND*15)),J(this,`request`,async e=>{this.logger.debug(`Publishing Request Payload`);let t=e.id||x().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}}),J(this,`resetPingTimeout`,()=>{yn()&&(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))}),J(this,`onPayloadHandler`,e=>{this.onProviderPayload(e),this.resetPingTimeout()}),J(this,`onConnectHandler`,()=>{this.logger.warn({},`Relayer connected 🛜`),this.startPingTimeout(),this.events.emit(G.connect)}),J(this,`onDisconnectHandler`,()=>{this.logger.warn({},`Relayer disconnected 🛑`),this.requestsInFlight=[],this.onProviderDisconnect()}),J(this,`onProviderErrorHandler`,e=>{this.logger.fatal(`Fatal socket error: ${e.message}`),this.events.emit(G.error,e),this.logger.fatal(`Fatal socket error received, closing transport`),this.transportClose()}),J(this,`registerProviderListeners`,()=>{this.provider.on(hd.payload,this.onPayloadHandler),this.provider.on(hd.connect,this.onConnectHandler),this.provider.on(hd.disconnect,this.onDisconnectHandler),this.provider.on(hd.error,this.onProviderErrorHandler)}),this.core=e.core,this.logger=typeof e.logger<`u`&&typeof e.logger!=`string`?Ke(e.logger,this.name):(0,Ce.default)(Ve({level:e.logger||`error`})),this.messages=new Xp(this.logger,e.core),this.subscriber=new xm(this,this.logger),this.publisher=new sm(this,this.logger),this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||`wss://relay.walletconnect.org`,xn()?this.packageName=Tn():Sn()&&(this.bundleId=Tn()),this.provider={}}async init(){this.logger.trace(`Initialized`),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.transportOpen().catch(e=>this.logger.warn(e,e?.message))}get context(){return We(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:K.relay},_d.outbound)}async publishCustom(e){this.isInitialized(),await this.publisher.publishCustom(e)}async subscribe(e,t){this.isInitialized(),(!(t!=null&&t.transportType)||t?.transportType===`relay`)&&await this.toEstablishConnection();let n=typeof t?.internal?.throwOnFailedPublish>`u`||t?.internal?.throwOnFailedPublish,r=this.subscriber.topicMap.get(e)?.[0]||``,i,a=t=>{t.topic===e&&(this.subscriber.off(yd.created,a),i())};return await Promise.all([new Promise(e=>{i=e,this.subscriber.on(yd.created,a)}),new Promise(async(i,a)=>{r=await this.subscriber.subscribe(e,Dm({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 Ln(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.info(`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 Ru())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:Hn(R.FIVE_MINUTES),relay:{protocol:`irn`},active:!1};await this.core.pairing.pairings.set(n,e)}this.events.emit(G.message,e),await this.recordMessageEvent(e,_d.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 connect`))};this.provider.once(hd.disconnect,n),await Ln(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(hd.disconnect,n),clearTimeout(this.reconnectTimeout)}),await new Promise(async(e,n)=>{let r=()=>{t(Error(`Connection interrupted while trying to subscribe`))};this.provider.once(hd.disconnect,r),await this.subscriber.start().then(e).catch(n).finally(()=>{this.provider.off(hd.disconnect,r)})}),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,R.toMiliseconds)(t*1))),t++}}startPingTimeout(){var e,t;if(yn())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 N(new A(Mn({sdkVersion:gd,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}),v(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:K.relay,attestation:a};this.logger.debug(`Emitting Relayer Payload`),this.logger.trace(Dm({type:`event`,event:t.id},o)),this.events.emit(t.id,o),await this.acknowledgePayload(e),await this.onMessageEvent(o)}else j(e)&&this.events.emit(G.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,_d.inbound),this.events.emit(G.message,e))}async acknowledgePayload(e){let t=I(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(hd.payload,this.onPayloadHandler),this.provider.off(hd.connect,this.onConnectHandler),this.provider.off(hd.disconnect,this.onDisconnectHandler),this.provider.off(hd.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await Ru();Hu(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))}),this.core.heartbeat.on(w.pulse,async()=>{if(!this.transportExplicitlyClosed&&!this.connected&&Gu())try{await this.confirmOnlineStateOrThrow(),await this.transportOpen()}catch(e){this.logger.warn(e,e?.message)}})}async onProviderDisconnect(){clearTimeout(this.pingTimeout),this.events.emit(G.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,R.toMiliseconds)(.1)))))}isInitialized(){if(!this.initialized){let{message:e}=H(`NOT_INITIALIZED`,this.name);throw Error(e)}}async toEstablishConnection(){if(await this.confirmOnlineStateOrThrow(),!this.connected){if(this.connectPromise){await this.connectPromise;return}await this.connect()}}};function km(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function Am(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function jm(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var Mm=`[object RegExp]`,Nm=`[object String]`,Pm=`[object Number]`,Fm=`[object Boolean]`,Im=`[object Arguments]`,Lm=`[object Symbol]`,Rm=`[object Date]`,zm=`[object Map]`,Bm=`[object Set]`,Vm=`[object Array]`,Hm=`[object Function]`,Um=`[object ArrayBuffer]`,Wm=`[object Object]`,Gm=`[object Error]`,Km=`[object DataView]`,qm=`[object Uint8Array]`,Jm=`[object Uint8ClampedArray]`,Ym=`[object Uint16Array]`,Xm=`[object Uint32Array]`,Zm=`[object BigUint64Array]`,Qm=`[object Int8Array]`,$m=`[object Int16Array]`,eh=`[object Int32Array]`,th=`[object BigInt64Array]`,nh=`[object Float32Array]`,rh=`[object Float64Array]`;function ih(){}function ah(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 oh(e,t,n){return sh(e,t,void 0,void 0,void 0,void 0,n)}function sh(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 ch(e,t,a,o)}return ch(e,t,a,o)}function ch(e,t,n,r){if(Object.is(e,t))return!0;let i=jm(e),a=jm(t);if(i===Im&&(i=Wm),a===Im&&(a=Wm),i!==a)return!1;switch(i){case Nm:return e.toString()===t.toString();case Pm:return km(e.valueOf(),t.valueOf());case Fm:case Rm:case Lm:return Object.is(e.valueOf(),t.valueOf());case Mm:return e.source===t.source&&e.flags===t.flags;case Hm: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 zm:if(e.size!==t.size)return!1;for(let[i,a]of e.entries())if(!t.has(i)||!sh(a,t.get(i),i,e,t,n,r))return!1;return!0;case Bm:{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=>sh(s,i,void 0,e,t,n,r));if(c===-1)return!1;a.splice(c,1)}return!0}case Vm:case qm:case Jm:case Ym:case Xm:case Zm:case Qm:case $m:case eh:case th:case nh:case rh: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(!sh(e[i],t[i],i,e,t,n,r))return!1;return!0;case Um:return e.byteLength===t.byteLength&&ch(new Uint8Array(e),new Uint8Array(t),n,r);case Km:return e.byteLength!==t.byteLength||e.byteOffset!==t.byteOffset?!1:ch(new Uint8Array(e),new Uint8Array(t),n,r);case Gm:return e.name===t.name&&e.message===t.message;case Wm:{if(!(ch(e.constructor,t.constructor,n,r)||ah(e)&&ah(t)))return!1;let i=[...Object.keys(e),...Am(e)],a=[...Object.keys(t),...Am(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(!sh(s,c,o,e,t,n,r))return!1}return!0}default:return!1}}finally{n.delete(e),n.delete(t)}}function lh(e,t){return oh(e,t,ih)}var uh=Object.defineProperty,dh=Object.getOwnPropertySymbols,fh=Object.prototype.hasOwnProperty,ph=Object.prototype.propertyIsEnumerable,mh=(e,t,n)=>t in e?uh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,hh=(e,t)=>{for(var n in t||={})fh.call(t,n)&&mh(e,n,t[n]);if(dh)for(var n of dh(t))ph.call(t,n)&&mh(e,n,t[n]);return e},gh=(e,t,n)=>mh(e,typeof t==`symbol`?t:t+``,n),_h=class extends st{constructor(e,t,n,r=id,i=void 0){super(e,t,n,r),this.core=e,this.logger=t,this.name=n,gh(this,`map`,new Map),gh(this,`version`,`0.3`),gh(this,`cached`,[]),gh(this,`initialized`,!1),gh(this,`getKey`),gh(this,`storagePrefix`,id),gh(this,`recentlyDeleted`,[]),gh(this,`recentlyDeletedLimit`,200),gh(this,`init`,async()=>{this.initialized||=(this.logger.trace(`Initialized`),await this.restore(),this.cached.forEach(e=>{this.getKey&&e!==null&&!iu(e)?this.map.set(this.getKey(e),e):uu(e)?this.map.set(e.id,e):du(e)&&this.map.set(e.topic,e)}),this.cached=[],!0)}),gh(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())}),gh(this,`get`,e=>(this.isInitialized(),this.logger.debug(`Getting value`),this.logger.trace({type:`method`,method:`get`,key:e}),this.getData(e))),gh(this,`getAll`,e=>(this.isInitialized(),e?this.values.filter(t=>Object.keys(e).every(n=>lh(t[n],e[n]))):this.values)),gh(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=hh(hh({},this.getData(e)),t);this.map.set(e,n),await this.persist()}),gh(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=Ke(t,this.name),this.storagePrefix=r,this.getKey=i}get context(){return We(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}=H(`MISSING_OR_INVALID`,`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(t),Error(t)}let{message:t}=H(`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}=H(`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}=H(`NOT_INITIALIZED`,this.name);throw Error(e)}}},vh=Object.defineProperty,yh=(e,t,n)=>t in e?vh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Y=(e,t,n)=>yh(e,typeof t==`symbol`?t:t+``,n),bh=class{constructor(e,t){this.core=e,this.logger=t,Y(this,`name`,xd),Y(this,`version`,`0.3`),Y(this,`events`,new Se.default),Y(this,`pairings`),Y(this,`initialized`,!1),Y(this,`storagePrefix`,id),Y(this,`ignoredPayloadTypes`,[1]),Y(this,`registeredMethods`,[]),Y(this,`init`,async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace(`Initialized`))}),Y(this,`register`,({methods:e})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...e])]}),Y(this,`create`,async e=>{this.isInitialized();let t=Qc(),n=await this.core.crypto.setSymKey(t),r=Hn(R.FIVE_MINUTES),i={protocol:`irn`},a={topic:n,expiry:r,relay:i,active:!1,methods:e?.methods},o=Nl({protocol:this.core.protocol,version:this.core.version,topic:n,symKey:t,relay:i,expiryTimestamp:r,methods:e?.methods});return this.events.emit(Cd.create,a),this.core.expirer.set(n,r),await this.pairings.set(n,a),await this.core.relayer.subscribe(n,{transportType:e?.transportType,internal:e?.internal}),{topic:n,uri:o}}),Y(this,`pair`,async e=>{this.isInitialized();let t=this.core.eventClient.createEvent({properties:{topic:e?.uri,trace:[Fd.pairing_started]}});this.isValidPair(e,t);let{topic:n,symKey:r,relay:i,expiryTimestamp:a,methods:o}=Al(e.uri);t.props.properties.topic=n,t.addTrace(Fd.pairing_uri_validation_success),t.addTrace(Fd.pairing_uri_not_expired);let s;if(this.pairings.keys.includes(n)){if(s=this.pairings.get(n),t.addTrace(Fd.existing_pairing),s.active)throw t.setError(Id.active_pairing_already_exists),Error(`Pairing already exists: ${n}. Please try again with a new connection URI.`);t.addTrace(Fd.pairing_not_expired)}let c=a||Hn(R.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(Fd.store_new_pairing),e.activatePairing&&await this.activate({topic:n}),this.events.emit(Cd.create,l),t.addTrace(Fd.emit_inactive_pairing),this.core.crypto.keychain.has(n)||await this.core.crypto.setSymKey(r,n),t.addTrace(Fd.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{t.setError(Id.no_internet_connection)}try{await this.core.relayer.subscribe(n,{relay:i})}catch(e){throw t.setError(Id.subscribe_pairing_topic_failure),e}return t.addTrace(Fd.subscribe_pairing_topic_success),l}),Y(this,`activate`,async({topic:e})=>{this.isInitialized();let t=Hn(R.FIVE_MINUTES);this.core.expirer.set(e,t),await this.pairings.update(e,{active:!0,expiry:t})}),Y(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}=In();this.events.once(z(`pairing_ping`,e),({error:e})=>{e?i(e):r()}),await n()}}),Y(this,`updateExpiry`,async({topic:e,expiry:t})=>{this.isInitialized(),await this.pairings.update(e,{expiry:t})}),Y(this,`updateMetadata`,async({topic:e,metadata:t})=>{this.isInitialized(),await this.pairings.update(e,{peerMetadata:t})}),Y(this,`getPairings`,()=>(this.isInitialized(),this.pairings.values)),Y(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`,U(`USER_DISCONNECTED`)),await this.deletePairing(t))}),Y(this,`formatUriFromPairing`,e=>{this.isInitialized();let{topic:t,relay:n,expiry:r,methods:i}=e,a=this.core.crypto.keychain.get(t);return Nl({protocol:this.core.protocol,version:this.core.version,topic:t,symKey:a,relay:n,expiryTimestamp:r,methods:i})}),Y(this,`sendRequest`,async(e,t,n)=>{let r=O(t,n),i=await this.core.crypto.encode(e,r),a=Sd[t].req;return this.core.history.set(e,r),this.core.relayer.publish(e,i,a),r.id}),Y(this,`sendResult`,async(e,t,n)=>{let r=I(e,n),i=await this.core.crypto.encode(t,r),a=Sd[(await this.core.history.get(t,e)).request.method].res;await this.core.relayer.publish(t,i,a),await this.core.history.resolve(r)}),Y(this,`sendError`,async(e,t,n)=>{let r=b(e,n),i=await this.core.crypto.encode(t,r),a=(await this.core.history.get(t,e)).request.method,o=Sd[a]?Sd[a].res:Sd.unregistered_method.res;await this.core.relayer.publish(t,i,o),await this.core.history.resolve(r)}),Y(this,`deletePairing`,async(e,t)=>{await this.core.relayer.unsubscribe(e),await Promise.all([this.pairings.delete(e,U(`USER_DISCONNECTED`)),this.core.crypto.deleteSymKey(e),t?Promise.resolve():this.core.expirer.del(e)])}),Y(this,`cleanup`,async()=>{let e=this.pairings.getAll().filter(e=>Un(e.expiry));await Promise.all(e.map(e=>this.deletePairing(e.topic)))}),Y(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)}}),Y(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)}}),Y(this,`onPairingPingRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidPing({topic:e}),await this.sendResult(n,e,!0),this.events.emit(Cd.ping,{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.logger.error(t)}}),Y(this,`onPairingPingResponse`,(e,t)=>{let{id:n}=t;setTimeout(()=>{P(t)?this.events.emit(z(`pairing_ping`,n),{}):T(t)&&this.events.emit(z(`pairing_ping`,n),{error:t.error})},500)}),Y(this,`onPairingDeleteRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidDisconnect({topic:e}),await this.deletePairing(e),this.events.emit(Cd.delete,{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.logger.error(t)}}),Y(this,`onUnknownRpcMethodRequest`,async(e,t)=>{let{id:n,method:r}=t;try{if(this.registeredMethods.includes(r))return;let t=U(`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)}}),Y(this,`onUnknownRpcMethodResponse`,e=>{this.registeredMethods.includes(e)||this.logger.error(U(`WC_METHOD_UNSUPPORTED`,e))}),Y(this,`isValidPair`,(e,t)=>{var n;if(!Tu(e)){let{message:n}=H(`MISSING_OR_INVALID`,`pair() params: ${e}`);throw t.setError(Id.malformed_pairing_uri),Error(n)}if(!lu(e.uri)){let{message:n}=H(`MISSING_OR_INVALID`,`pair() uri: ${e.uri}`);throw t.setError(Id.malformed_pairing_uri),Error(n)}let r=Al(e?.uri);if(!((n=r?.relay)!=null&&n.protocol)){let{message:e}=H(`MISSING_OR_INVALID`,`pair() uri#relay-protocol`);throw t.setError(Id.malformed_pairing_uri),Error(e)}if(!(r!=null&&r.symKey)){let{message:e}=H(`MISSING_OR_INVALID`,`pair() uri#symKey`);throw t.setError(Id.malformed_pairing_uri),Error(e)}if(r!=null&&r.expiryTimestamp&&(0,R.toMiliseconds)(r?.expiryTimestamp)<Date.now()){t.setError(Id.pairing_expired);let{message:e}=H(`EXPIRED`,`pair() URI has expired. Please try again with a new connection URI.`);throw Error(e)}}),Y(this,`isValidPing`,async e=>{if(!Tu(e)){let{message:t}=H(`MISSING_OR_INVALID`,`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),Y(this,`isValidDisconnect`,async e=>{if(!Tu(e)){let{message:t}=H(`MISSING_OR_INVALID`,`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),Y(this,`isValidPairingTopic`,async e=>{if(!W(e,!1)){let{message:t}=H(`MISSING_OR_INVALID`,`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.pairings.keys.includes(e)){let{message:t}=H(`NO_MATCHING_KEY`,`pairing topic doesn't exist: ${e}`);throw Error(t)}if(Un(this.pairings.get(e).expiry)){await this.deletePairing(e);let{message:t}=H(`EXPIRED`,`pairing topic: ${e}`);throw Error(t)}}),this.core=e,this.logger=Ke(t,this.name),this.pairings=new _h(this.core,this.logger,this.name,this.storagePrefix)}get context(){return We(this.logger)}isInitialized(){if(!this.initialized){let{message:e}=H(`NOT_INITIALIZED`,this.name);throw Error(e)}}registerRelayerEvents(){this.core.relayer.on(G.message,async e=>{let{topic:t,message:n,transportType:r}=e;if(this.pairings.keys.includes(t)&&r!==K.link_mode&&!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(n)))try{let e=await this.core.crypto.decode(t,n);v(e)?(this.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e})):j(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(Dd.expired,async e=>{let{topic:t}=Vn(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit(Cd.expire,{topic:t}))})}},xh=Object.defineProperty,Sh=(e,t,n)=>t in e?xh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ch=(e,t,n)=>Sh(e,typeof t==`symbol`?t:t+``,n),wh=class extends rt{constructor(e,t){super(e,t),this.core=e,this.logger=t,Ch(this,`records`,new Map),Ch(this,`events`,new Se.EventEmitter),Ch(this,`name`,Td),Ch(this,`version`,`0.3`),Ch(this,`cached`,[]),Ch(this,`initialized`,!1),Ch(this,`storagePrefix`,id),Ch(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)}),Ch(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:Hn(R.THIRTY_DAYS)};this.records.set(r.id,r),this.persist(),this.events.emit(wd.created,r)}),Ch(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=T(e)?{error:e.error}:{result:e.result},this.records.set(t.id,t),this.persist(),this.events.emit(wd.updated,t))}),Ch(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))),Ch(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(wd.deleted,n)}}),this.persist()}),Ch(this,`exists`,async(e,t)=>(this.isInitialized(),this.records.has(t)?(await this.getRecord(t)).topic===e:!1)),Ch(this,`on`,(e,t)=>{this.events.on(e,t)}),Ch(this,`once`,(e,t)=>{this.events.once(e,t)}),Ch(this,`off`,(e,t)=>{this.events.off(e,t)}),Ch(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.logger=Ke(t,this.name)}get context(){return We(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:O(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}=H(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(wd.sync)}async restore(){try{let e=await this.getJsonRpcRecords();if(typeof e>`u`||!e.length)return;if(this.records.size){let{message:e}=H(`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(wd.created,e=>{let t=wd.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.events.on(wd.updated,e=>{let t=wd.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.events.on(wd.deleted,e=>{let t=wd.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.core.heartbeat.on(w.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(t=>{(0,R.toMiliseconds)(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(wd.deleted,t,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){let{message:e}=H(`NOT_INITIALIZED`,this.name);throw Error(e)}}},Th=Object.defineProperty,Eh=(e,t,n)=>t in e?Th(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dh=(e,t,n)=>Eh(e,typeof t==`symbol`?t:t+``,n),Oh=class extends lt{constructor(e,t){super(e,t),this.core=e,this.logger=t,Dh(this,`expirations`,new Map),Dh(this,`events`,new Se.EventEmitter),Dh(this,`name`,Ed),Dh(this,`version`,`0.3`),Dh(this,`cached`,[]),Dh(this,`initialized`,!1),Dh(this,`storagePrefix`,id),Dh(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)}),Dh(this,`has`,e=>{try{let t=this.formatTarget(e);return typeof this.getExpiration(t)<`u`}catch{return!1}}),Dh(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(Dd.created,{target:n,expiration:r})}),Dh(this,`get`,e=>{this.isInitialized();let t=this.formatTarget(e);return this.getExpiration(t)}),Dh(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(Dd.deleted,{target:t,expiration:n})}}),Dh(this,`on`,(e,t)=>{this.events.on(e,t)}),Dh(this,`once`,(e,t)=>{this.events.once(e,t)}),Dh(this,`off`,(e,t)=>{this.events.off(e,t)}),Dh(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.logger=Ke(t,this.name)}get context(){return We(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 zn(e);if(typeof e==`number`)return Bn(e);let{message:t}=H(`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(Dd.sync)}async restore(){try{let e=await this.getExpirations();if(typeof e>`u`||!e.length)return;if(this.expirations.size){let{message:e}=H(`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}=H(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw this.logger.warn(t),Error(t)}return t}checkExpiry(e,t){let{expiry:n}=t;(0,R.toMiliseconds)(n)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(Dd.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(w.pulse,()=>this.checkExpirations()),this.events.on(Dd.created,e=>{let t=Dd.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()}),this.events.on(Dd.expired,e=>{let t=Dd.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()}),this.events.on(Dd.deleted,e=>{let t=Dd.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()})}isInitialized(){if(!this.initialized){let{message:e}=H(`NOT_INITIALIZED`,this.name);throw Error(e)}}},kh=Object.defineProperty,Ah=(e,t,n)=>t in e?kh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jh=(e,t,n)=>Ah(e,typeof t==`symbol`?t:t+``,n),Mh=class extends ut{constructor(e,t,n){super(e,t,n),this.core=e,this.logger=t,this.store=n,jh(this,`name`,Od),jh(this,`abortController`),jh(this,`isDevEnv`),jh(this,`verifyUrlV3`,jd),jh(this,`storagePrefix`,id),jh(this,`version`,2),jh(this,`publicKey`),jh(this,`fetchPromise`),jh(this,`init`,async()=>{this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&(0,R.toMiliseconds)(this.publicKey?.expiresAt)<Date.now()&&(this.logger.debug(`verify v2 public key expired`),await this.removePublicKey()))}),jh(this,`register`,async e=>{if(!Cn()||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,tn.getDocument)(),t=this.startAbortTimer(R.ONE_SECOND*5),r=await new Promise((r,a)=>{let o=()=>{window.removeEventListener(`message`,l),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 l=i=>{if(i.data&&typeof i.data==`string`)try{let a=JSON.parse(i.data);if(a.type===`verify_attestation`){if(c(a.attestation).payload.id!==n)return;clearInterval(t),e.body.removeChild(s),this.abortController.signal.removeEventListener(`abort`,o),window.removeEventListener(`message`,l),r(a.attestation===null?``:a.attestation)}}catch(e){this.logger.warn(e)}};e.body.appendChild(s),window.addEventListener(`message`,l,{signal:this.abortController.signal})});return this.logger.debug(`jwt attestation`,r),r}catch(e){this.logger.warn(e)}return``}),jh(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(c(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)}),jh(this,`fetchAttestation`,async(e,t)=>{this.logger.debug(`resolving attestation: ${e} from url: ${t}`);let n=this.startAbortTimer(R.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}),jh(this,`getVerifyUrl`,e=>{let t=e||`https://verify.walletconnect.org`;return Md.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}),jh(this,`fetchPublicKey`,async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);let e=this.startAbortTimer(R.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)}}),jh(this,`persistPublicKey`,async e=>{this.logger.debug(`persisting public key to local storage`,e),await this.store.setItem(this.storeKey,e),this.publicKey=e}),jh(this,`removePublicKey`,async()=>{this.logger.debug(`removing verify v2 public key from storage`),await this.store.removeItem(this.storeKey),this.publicKey=void 0}),jh(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`)}}),jh(this,`getPublicKey`,async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey()),jh(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}),jh(this,`validateAttestation`,(e,t)=>{let n=_l(e,t.publicKey),r={hasExpired:(0,R.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=Ke(t,this.name),this.abortController=new AbortController,this.isDevEnv=Zn(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//verify:public:key`}get context(){return We(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),(0,R.toMiliseconds)(e))}},Nh=Object.defineProperty,Ph=(e,t,n)=>t in e?Nh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Fh=(e,t,n)=>Ph(e,typeof t==`symbol`?t:t+``,n),Ih=class extends dt{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,Fh(this,`context`,Nd),Fh(this,`registerDeviceToken`,async e=>{let{clientId:t,token:n,notificationType:r,enableEncrypted:i=!1}=e,a=`${Pd}/${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=Ke(t,this.context)}},Lh=Object.defineProperty,Rh=Object.getOwnPropertySymbols,zh=Object.prototype.hasOwnProperty,Bh=Object.prototype.propertyIsEnumerable,Vh=(e,t,n)=>t in e?Lh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Hh=(e,t)=>{for(var n in t||={})zh.call(t,n)&&Vh(e,n,t[n]);if(Rh)for(var n of Rh(t))Bh.call(t,n)&&Vh(e,n,t[n]);return e},Uh=(e,t,n)=>Vh(e,typeof t==`symbol`?t:t+``,n),Wh=class extends ft{constructor(e,t,n=!0){super(e,t,n),this.core=e,this.logger=t,Uh(this,`context`,Hd),Uh(this,`storagePrefix`,id),Uh(this,`storageVersion`,Vd),Uh(this,`events`,new Map),Uh(this,`shouldPersist`,!1),Uh(this,`init`,async()=>{if(!Zn())try{let e={eventId:Xn(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:`INIT`,type:``,properties:{client_id:await this.core.crypto.getClientId(),user_agent:jn(this.core.relayer.protocol,this.core.relayer.version,gd)}}};await this.sendEvent([e])}catch(e){this.logger.warn(e)}}),Uh(this,`createEvent`,e=>{let{event:t=`ERROR`,type:n=``,properties:{topic:r,trace:i}}=e,a=Xn(),o=this.core.projectId||``,s=Hh({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}),Uh(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 Hh(Hh({},r),this.setMethods(r.eventId))}),Uh(this,`deleteEvent`,e=>{let{eventId:t}=e;this.events.delete(t),this.shouldPersist=!0}),Uh(this,`setEventListeners`,()=>{this.core.heartbeat.on(w.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(e=>{(0,R.fromMiliseconds)(Date.now())-(0,R.fromMiliseconds)(e.timestamp)>86400&&(this.events.delete(e.eventId),this.shouldPersist=!0)})})}),Uh(this,`setMethods`,e=>({addTrace:t=>this.addTrace(e,t),setError:t=>this.setError(e,t)})),Uh(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)}),Uh(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)}),Uh(this,`persist`,async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1}),Uh(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,Hh(Hh({},e),this.setMethods(e.eventId)))})}catch(e){this.logger.warn(e)}}),Uh(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)}}),Uh(this,`sendEvent`,async e=>{let t=this.getAppDomain()?``:`&sp=desktop`;return await fetch(`${Ud}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${gd}${t}`,{method:`POST`,body:JSON.stringify(e)})}),Uh(this,`getAppDomain`,()=>On().url),this.logger=Ke(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}},Gh=Object.defineProperty,Kh=Object.getOwnPropertySymbols,qh=Object.prototype.hasOwnProperty,Jh=Object.prototype.propertyIsEnumerable,Yh=(e,t,n)=>t in e?Gh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Xh=(e,t)=>{for(var n in t||={})qh.call(t,n)&&Yh(e,n,t[n]);if(Kh)for(var n of Kh(t))Jh.call(t,n)&&Yh(e,n,t[n]);return e},X=(e,t,n)=>Yh(e,typeof t==`symbol`?t:t+``,n),Zh=class e extends $e{constructor(e){var t;super(e),X(this,`protocol`,`wc`),X(this,`version`,2),X(this,`name`,rd),X(this,`relayUrl`),X(this,`projectId`),X(this,`customStoragePrefix`),X(this,`events`,new Se.EventEmitter),X(this,`logger`),X(this,`heartbeat`),X(this,`relayer`),X(this,`crypto`),X(this,`storage`),X(this,`history`),X(this,`expirer`),X(this,`pairing`),X(this,`verify`),X(this,`echoClient`),X(this,`linkModeSupportedApps`),X(this,`eventClient`),X(this,`initialized`,!1),X(this,`logChunkController`),X(this,`on`,(e,t)=>this.events.on(e,t)),X(this,`once`,(e,t)=>this.events.once(e,t)),X(this,`off`,(e,t)=>this.events.off(e,t)),X(this,`removeListener`,(e,t)=>this.events.removeListener(e,t)),X(this,`dispatchEnvelope`,({topic:e,message:t,sessionExists:n})=>{if(!e||!t)return;let r={topic:e,message:t,publishedAt:Date.now(),transportType:K.link_mode};this.relayer.onLinkMessageEvent(r,{sessionExists:n})});let n=this.getGlobalCore(e?.customStoragePrefix);if(n)try{return this.customStoragePrefix=n.customStoragePrefix,this.logger=n.logger,this.heartbeat=n.heartbeat,this.crypto=n.crypto,this.history=n.history,this.expirer=n.expirer,this.storage=n.storage,this.relayer=n.relayer,this.pairing=n.pairing,this.verify=n.verify,this.echoClient=n.echoClient,this.linkModeSupportedApps=n.linkModeSupportedApps,this.eventClient=n.eventClient,this.initialized=n.initialized,this.logChunkController=n.logChunkController,n}catch(e){console.warn(`Failed to copy global core`,e)}this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||`wss://relay.walletconnect.org`,this.customStoragePrefix=e!=null&&e.customStoragePrefix?`:${e.customStoragePrefix}`:``;let{logger:r,chunkLoggerController:i}=Ye({opts:Ve({level:typeof e?.logger==`string`&&e.logger?e.logger:ad.logger,name:rd}),maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=i,(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=Ke(r,this.name),this.heartbeat=new k,this.crypto=new zp(this,this.logger,e?.keychain),this.history=new wh(this,this.logger),this.expirer=new Oh(this,this.logger),this.storage=e!=null&&e.storage?e.storage:new M(Xh(Xh({},od),e?.storageOptions)),this.relayer=new Om({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new bh(this,this.logger),this.verify=new Mh(this,this.logger,this.storage),this.echoClient=new Ih(this.projectId||``,this.logger),this.linkModeSupportedApps=[],this.eventClient=new Wh(this,this.logger,e?.telemetryEnabled),this.setGlobalCore(this)}static async init(t){let n=new e(t);await n.initialize();let r=await n.crypto.getClientId();return await n.storage.setItem(vd,r),n}get context(){return We(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}}getGlobalCore(e=``){try{if(this.isGlobalCoreDisabled())return;let t=`_walletConnectCore_${e}`,n=`${t}_count`;return globalThis[n]=(globalThis[n]||0)+1,globalThis[n]>1&&console.warn(`WalletConnect Core is already initialized. This is probably a mistake and can lead to unexpected behavior. Init() was called ${globalThis[n]} times.`),globalThis[t]}catch(e){console.warn(`Failed to get global WalletConnect core`,e);return}}setGlobalCore(e){try{if(this.isGlobalCoreDisabled())return;let t=`_walletConnectCore_${e.opts?.customStoragePrefix||``}`;globalThis[t]=e}catch(e){console.warn(`Failed to set global WalletConnect core`,e)}}isGlobalCoreDisabled(){try{return typeof process<`u`&&{}.DISABLE_GLOBAL_CORE===`true`}catch{return!0}}},Qh=`client`,$h=`wc@2:${Qh}:`,eg={name:Qh,logger:`error`,controller:!1,relayUrl:`wss://relay.walletconnect.org`},tg=`WALLETCONNECT_DEEPLINK_CHOICE`,ng=`proposal`,rg=`Proposal expired`,ig=`session`,ag=R.SEVEN_DAYS,og=`engine`,sg={wc_sessionPropose:{req:{ttl:R.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:R.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:R.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:R.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:R.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:R.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:R.ONE_DAY,prompt:!1,tag:1104},res:{ttl:R.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:R.ONE_DAY,prompt:!1,tag:1106},res:{ttl:R.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:R.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:R.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:R.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:R.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:R.ONE_DAY,prompt:!1,tag:1112},res:{ttl:R.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:R.ONE_DAY,prompt:!1,tag:1114},res:{ttl:R.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:R.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:R.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:R.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:R.FIVE_MINUTES,prompt:!1,tag:1119}}},cg={min:R.FIVE_MINUTES,max:R.SEVEN_DAYS},lg={idle:`IDLE`,active:`ACTIVE`},ug={eth_sendTransaction:{key:``},eth_sendRawTransaction:{key:``},wallet_sendCalls:{key:``},solana_signTransaction:{key:`signature`},solana_signAllTransactions:{key:`transactions`},solana_signAndSendTransaction:{key:`signature`},sui_signAndExecuteTransaction:{key:`digest`},sui_signTransaction:{key:``},hedera_signAndExecuteTransaction:{key:`transactionId`},hedera_executeTransaction:{key:`transactionId`},near_signTransaction:{key:``},near_signTransactions:{key:``},tron_signTransaction:{key:`txID`},xrpl_signTransaction:{key:``},xrpl_signTransactionFor:{key:``},algo_signTxn:{key:``},sendTransfer:{key:`txid`},stacks_stxTransfer:{key:`txId`},polkadot_signTransaction:{key:``},cosmos_signDirect:{key:``}},dg=`request`,fg=[`wc_sessionPropose`,`wc_sessionRequest`,`wc_authRequest`,`wc_sessionAuthenticate`],pg=`auth`,mg=`authKeys`,hg=`pairingTopics`,gg=`requests`,_g=`wc@1.5:${pg}:`,vg=`${_g}:PUB_KEY`,yg=Object.defineProperty,bg=Object.defineProperties,xg=Object.getOwnPropertyDescriptors,Sg=Object.getOwnPropertySymbols,Cg=Object.prototype.hasOwnProperty,wg=Object.prototype.propertyIsEnumerable,Tg=(e,t,n)=>t in e?yg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Z=(e,t)=>{for(var n in t||={})Cg.call(t,n)&&Tg(e,n,t[n]);if(Sg)for(var n of Sg(t))wg.call(t,n)&&Tg(e,n,t[n]);return e},Eg=(e,t)=>bg(e,xg(t)),Q=(e,t,n)=>Tg(e,typeof t==`symbol`?t:t+``,n),Dg=class extends _t{constructor(e){super(e),Q(this,`name`,og),Q(this,`events`,new Se.default),Q(this,`initialized`,!1),Q(this,`requestQueue`,{state:lg.idle,queue:[]}),Q(this,`sessionRequestQueue`,{state:lg.idle,queue:[]}),Q(this,`emittedSessionRequests`,new rr({limit:500})),Q(this,`requestQueueDelay`,R.ONE_SECOND),Q(this,`expectedPairingMethodMap`,new Map),Q(this,`recentlyDeletedMap`,new Map),Q(this,`recentlyDeletedLimit`,200),Q(this,`relayMessageCache`,[]),Q(this,`pendingSessions`,new Map),Q(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(sg)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},(0,R.toMiliseconds)(this.requestQueueDelay)))}),Q(this,`connect`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();let t=Eg(Z({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t),t.optionalNamespaces=$l(t.requiredNamespaces,t.optionalNamespaces),t.requiredNamespaces={};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({internal:{skipSubscribe:!0}});c=e,l=t}if(!c){let{message:e}=H(`NO_MATCHING_KEY`,`connect() pairing topic: ${c}`);throw Error(e)}let d=await this.client.core.crypto.generateKeyPair(),f=sg.wc_sessionPropose.req.ttl||R.FIVE_MINUTES,p=Hn(f),m=Eg(Z(Z({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=z(`session_connect`,m.id),{reject:g,resolve:_,done:v}=In(f,rg),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.sendProposeSession({proposal:m,publishOpts:{internal:{throwOnFailedPublish:!0},tvf:{correlationId:m.id}}}),await this.setProposal(m.id,m),{uri:l,approval:v}}),Q(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}}),Q(this,`approve`,async e=>{let t=this.client.core.eventClient.createEvent({properties:{topic:(e?.id)?.toString(),trace:[Ld.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(e){throw t.setError(Rd.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(Rd.proposal_not_found),n}try{await this.isValidApprove(e)}catch(e){throw this.client.logger.error(`approve() -> isValidApprove() failed`),t.setError(Rd.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:Ld.session_approve_started,properties:{topic:l,trace:[Ld.session_approve_started,Ld.session_namespaces_validation_success]}});let m=await this.client.core.crypto.generateKeyPair(),h=u.publicKey,g=await this.client.core.crypto.generateSharedKey(m,h),_=Z(Z(Z({relay:{protocol:r??`irn`},namespaces:i,controller:{publicKey:m,metadata:this.client.metadata},expiry:Hn(ag)},a&&{sessionProperties:a}),o&&{scopedProperties:o}),s&&{sessionConfig:s}),v=K.relay;p.addTrace(Ld.subscribing_session_topic);try{await this.client.core.relayer.subscribe(g,{transportType:v,internal:{skipSubscribe:!0}})}catch(e){throw p.setError(Rd.subscribe_session_topic_failure),e}p.addTrace(Ld.subscribe_session_topic_success);let y=Eg(Z({},_),{topic:g,requiredNamespaces:d,optionalNamespaces:f,pairingTopic:l,acknowledged:!1,self:_.controller,peer:{publicKey:u.publicKey,metadata:u.metadata},controller:m,transportType:K.relay});await this.client.session.set(g,y),p.addTrace(Ld.store_session);try{await this.sendApproveSession({sessionTopic:g,proposal:c,pairingProposalResponse:{relay:{protocol:r??`irn`},responderPublicKey:m},sessionSettleRequest:_,publishOpts:{internal:{throwOnFailedPublish:!0},tvf:{correlationId:n}}}),p.addTrace(Ld.session_approve_publish_success)}catch(e){throw this.client.logger.error(e),this.client.session.delete(g,U(`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.deleteProposal(n),await this.client.core.pairing.activate({topic:l}),await this.setExpiry(g,Hn(ag)),{topic:g,acknowledged:()=>Promise.resolve(this.client.session.get(g))}}),Q(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:sg.wc_sessionPropose.reject}),await this.deleteProposal(t)}),Q(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}=In(),o=S(),s=x().toString(),c=this.client.session.get(t).namespaces;return this.events.once(z(`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}}),Q(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}=In();return this.events.once(z(`session_extend`,n),({error:e})=>{e?a(e):i()}),await this.setExpiry(t,Hn(ag)),this.sendRequest({topic:t,method:`wc_sessionExtend`,params:{},clientRpcId:n,throwOnFailedPublish:!0}).catch(e=>{a(e)}),{acknowledged:r}}),Q(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=sg.wc_sessionRequest.req.ttl}=e,a=this.client.session.get(r);a?.transportType===K.relay&&await this.confirmOnlineStateOrThrow();let o=S(),s=x().toString(),{done:c,resolve:l,reject:u}=In(i,`Request expired. Please try again.`);this.events.once(z(`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:Eg(Z({},n),{expiryTimestamp:Hn(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:Eg(Z({},n),{expiryTimestamp:Hn(i)}),chainId:t};return await Promise.all([new Promise(async e=>{await this.sendRequest({clientRpcId:o,relayRpcId:s,topic:r,method:d,params:p,expiry:i,throwOnFailedPublish:!0,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;if(!((t=a.sessionConfig)!=null&&t.disableDeepLink)){let e=await Jn(this.client.core.storage,tg);await Gn({id:o,topic:r,wcDeepLink:e})}e()}),c()]).then(e=>e[2])}),Q(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===K.relay&&await this.confirmOnlineStateOrThrow();let a=this.getAppLinkIfEnabled(i.peer.metadata,i.transportType);P(n)?await this.sendResult({id:r,topic:t,result:n.result,throwOnFailedPublish:!0,appLink:a}):T(n)&&await this.sendError({id:r,topic:t,error:n.error,appLink:a}),this.cleanupAfterResponse(e)}),Q(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=x().toString(),{done:r,resolve:i,reject:a}=In();this.events.once(z(`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}))}),Q(this,`emit`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);let{topic:t,event:n,chainId:r}=e,i=x().toString(),a=S();await this.sendRequest({topic:t,method:`wc_sessionEvent`,params:{event:n,chainId:r},throwOnFailedPublish:!0,relayRpcId:i,clientRpcId:a})}),Q(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:U(`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}=H(`MISMATCHED_TOPIC`,`Session or pairing topic not found: ${t}`);throw Error(e)}}),Q(this,`find`,e=>(this.isInitialized(),this.client.session.getAll().filter(t=>ou(t,e)))),Q(this,`getPendingSessionRequests`,()=>this.client.pendingRequest.getAll()),Q(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?K.link_mode:K.relay;r===K.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=el(_);if(await Promise.all([this.client.auth.authKeys.set(vg,{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}=on(i[0]),t=Na(e,`request`,f);Ba(m)&&(t=Fa(t,m.pop())),m.push(t)}let y=p&&p>sg.wc_sessionAuthenticate.req.ttl?p:sg.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:Hn(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:Hn(sg.wc_sessionPropose.req.ttl),id:S()},{done:C,resolve:w,reject:T}=In(y,`Request expired`),E=S(),D=z(`session_connect`,x.id),k=z(`session_request`,E),A=async({error:e,session:t})=>{this.events.off(k,j),e?T(e):t&&w({session:t})},j=async e=>{var n,i,a;if(await this.deletePendingAuthRequest(E,{message:`fulfilled`,code:0}),e.error){let t=U(`WC_METHOD_UNSUPPORTED`,`wc_sessionAuthenticate`);return e.error.code===t.code?void 0:(this.events.off(D,A),T(e.error.message))}await this.deleteProposal(x.id),this.events.off(D,A);let{cacaos:o,responder:s}=e.result,c=[],l=[];for(let e of o){await wa({cacao:e,projectId:this.client.core.projectId})||(this.client.logger.error(e,`Signature verification failed`),T(U(`SESSION_SETTLEMENT_FAILED`,`Signature verification failed`)));let{p:t}=e,n=Ba(t.resources),r=[Sa(t.iss)],i=Ca(t.iss);if(n){let e=Ra(n),t=za(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:Hn(ag),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:`irn`},pairingTopic:h,namespaces:Ql([...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:K.link_mode})),w({auths:o,session:d})};this.events.once(D,A),this.events.once(k,j);let M;try{if(n){let e=O(`wc_sessionAuthenticate`,b,E);this.client.core.history.set(h,e),M=Pl(t,h,await this.client.core.crypto.encode(``,e,{type:2,encoding:Gc}))}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:sg.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:x.id})])}catch(e){throw this.events.off(D,A),this.events.off(k,j),e}return await this.setProposal(x.id,x),await this.setAuthRequest(E,{request:Eg(Z({},b),{verifyContext:{}}),pairingTopic:h,transportType:r}),{uri:M??g,response:C}}),Q(this,`approveSessionAuthenticate`,async e=>{let{id:t,auths:n}=e,r=this.client.core.eventClient.createEvent({properties:{topic:t.toString(),trace:[zd.authenticated_session_approve_started]}});try{this.isInitialized()}catch(e){throw r.setError(Bd.no_internet_connection),e}let i=this.getPendingAuthRequest(t);if(!i)throw r.setError(Bd.authenticated_session_pending_request_not_found),Error(`Could not find pending auth request with id ${t}`);let a=i.transportType||K.relay;a===K.relay&&await this.confirmOnlineStateOrThrow();let o=i.requester.publicKey,s=await this.client.core.crypto.generateKeyPair(),c=el(o),l={type:1,receiverPublicKey:o,senderPublicKey:s},u=[],d=[];for(let e of n){if(!await wa({cacao:e,projectId:this.client.core.projectId})){r.setError(Bd.invalid_cacao);let e=U(`SESSION_SETTLEMENT_FAILED`,`Signature verification failed`);throw await this.sendError({id:t,topic:c,error:e,encodeOpts:l}),Error(e.message)}r.addTrace(zd.cacaos_verified);let{p:n}=e,i=Ba(n.resources),a=[Sa(n.iss)],o=Ca(n.iss);if(i){let e=Ra(i),t=za(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(zd.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:Hn(ag),authentication:n,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:`irn`},pairingTopic:i.pairingTopic,namespaces:Ql([...new Set(u)],[...new Set(d)]),transportType:a},r.addTrace(zd.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(f,{transportType:a})}catch(e){throw r.setError(Bd.subscribe_authenticated_session_topic_failure),e}r.addTrace(zd.subscribe_authenticated_session_topic_success),await this.client.session.set(f,p),r.addTrace(zd.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:i.pairingTopic,metadata:i.requester.metadata})}r.addTrace(zd.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(Bd.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}}),Q(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===K.relay&&await this.confirmOnlineStateOrThrow();let i=r.requester.publicKey,a=await this.client.core.crypto.generateKeyPair(),o=el(i),s={type:1,receiverPublicKey:i,senderPublicKey:a};await this.sendError({id:t,topic:o,error:n,encodeOpts:s,rpcOpts:sg.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(r.requester.metadata,r.transportType)}),await this.client.auth.requests.delete(t,{message:`rejected`,code:0}),await this.deleteProposal(t)}),Q(this,`formatAuthMessage`,e=>{this.isInitialized();let{request:t,iss:n}=e;return Ta(t,n)}),Q(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)}),Q(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)}}),Q(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,U(`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(tg).catch(e=>this.client.logger.warn(e)),this.getPendingSessionRequests().forEach(e=>{e.topic===t&&this.deletePendingSessionRequest(e.id,U(`USER_DISCONNECTED`))}),t===this.sessionRequestQueue.queue[0]?.topic&&(this.sessionRequestQueue.state=lg.idle),r&&this.client.events.emit(`session_delete`,{id:i,topic:t})}),Q(this,`deleteProposal`,async(e,t)=>{if(t)try{let t=this.client.proposal.get(e);this.client.core.eventClient.getEvent({topic:t.pairingTopic})?.setError(Rd.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,U(`USER_DISCONNECTED`)),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,`proposal`)}),Q(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=lg.idle,this.client.events.emit(`session_request_expire`,{id:e}))}),Q(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)])}),Q(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}))}),Q(this,`setProposal`,async(e,t)=>{this.client.core.expirer.set(e,Hn(sg.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)}),Q(this,`setAuthRequest`,async(e,t)=>{let{request:n,pairingTopic:r,transportType:i=K.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})}),Q(this,`setPendingSessionRequest`,async e=>{let{id:t,topic:n,params:r,verifyContext:i}=e,a=r.request.expiryTimestamp||Hn(sg.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})}),Q(this,`sendRequest`,async e=>{let{topic:t,method:n,params:r,expiry:i,relayRpcId:a,clientRpcId:o,throwOnFailedPublish:s,appLink:c,tvf:l,publishOpts:u={}}=e,d=O(n,r,o),f,p=!!c;try{let e=p?Gc:Wc;f=await this.client.core.crypto.encode(t,d,{encoding:e})}catch(e){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${t} failed`),e}let m;if(fg.includes(n)){let e=tl(JSON.stringify(d)),t=tl(f);m=await this.client.core.verify.register({id:t,decryptedId:e})}let h=Z(Z({},sg[n].req),u);if(h.attestation=m,i&&(h.ttl=i),a&&(h.id=a),this.client.core.history.set(t,d),p){let e=Pl(c,t,f);await global.Linking.openURL(e,this.client.name)}else h.tvf=Eg(Z({},l),{correlationId:d.id}),s?(h.internal=Eg(Z({},h.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(t,f,h)):this.client.core.relayer.publish(t,f,h).catch(e=>this.client.logger.error(e));return d.id}),Q(this,`sendProposeSession`,async e=>{let{proposal:t,publishOpts:n}=e,r=O(`wc_sessionPropose`,t,t.id);this.client.core.history.set(t.pairingTopic,r);let i=await this.client.core.crypto.encode(t.pairingTopic,r,{encoding:Wc}),a=tl(JSON.stringify(r)),o=tl(i),s=await this.client.core.verify.register({id:o,decryptedId:a});await this.client.core.relayer.publishCustom({payload:{pairingTopic:t.pairingTopic,sessionProposal:i},opts:Eg(Z({},n),{publishMethod:`wc_proposeSession`,attestation:s})})}),Q(this,`sendApproveSession`,async e=>{let{sessionTopic:t,pairingProposalResponse:n,proposal:r,sessionSettleRequest:i,publishOpts:a}=e,o=I(r.id,n),s=await this.client.core.crypto.encode(r.pairingTopic,o,{encoding:Wc}),c=O(`wc_sessionSettle`,i,a?.id),l=await this.client.core.crypto.encode(t,c,{encoding:Wc});this.client.core.history.set(t,c),await this.client.core.relayer.publishCustom({payload:{sessionTopic:t,pairingTopic:r.pairingTopic,sessionProposalResponse:s,sessionSettlementRequest:l},opts:Eg(Z({},a),{publishMethod:`wc_approveSession`})})}),Q(this,`sendResult`,async e=>{let{id:t,topic:n,result:r,throwOnFailedPublish:i,encodeOpts:a,appLink:o}=e,s=I(t,r),c,l=o&&typeof(global==null?void 0:global.Linking)<`u`;try{let e=l?Gc:Wc;c=await this.client.core.crypto.encode(n,s,Eg(Z({},a||{}),{encoding:e}))}catch(e){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${n} failed`),e}let u,d;try{u=await this.client.core.history.get(n,t);let e=u.request;try{d=this.getTVFParams(t,e.params,r)}catch(e){this.client.logger.warn(`sendResult() -> getTVFParams() failed: ${e?.message}`)}}catch(e){throw this.client.logger.error(`sendResult() -> history.get(${n}, ${t}) failed`),e}if(l){let e=Pl(o,n,c);await global.Linking.openURL(e,this.client.name)}else{let e=sg[u.request.method].res;e.tvf=Eg(Z({},d),{correlationId:t}),i?(e.internal=Eg(Z({},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)}),Q(this,`sendError`,async e=>{let{id:t,topic:n,error:r,encodeOpts:i,rpcOpts:a,appLink:o}=e,s=b(t,r),c,l=o&&typeof(global==null?void 0:global.Linking)<`u`;try{let e=l?Gc:Wc;c=await this.client.core.crypto.encode(n,s,Eg(Z({},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=Pl(o,n,c);await global.Linking.openURL(e,this.client.name)}else{let e=u.request.method,t=a||sg[e].res;this.client.core.relayer.publish(n,c,t)}await this.client.core.history.resolve(s)}),Q(this,`cleanup`,async()=>{let e=[],t=[];this.client.session.getAll().forEach(t=>{let n=!1;Un(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=>{Un(e.expiryTimestamp)&&t.push(e.id)}),await Promise.all([...e.map(e=>this.deleteSession({topic:e})),...t.map(e=>this.deleteProposal(e))])}),Q(this,`onProviderMessageEvent`,async e=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(e):await this.onRelayMessage(e)}),Q(this,`onRelayEventRequest`,async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()}),Q(this,`processRequestsQueue`,async()=>{if(this.requestQueue.state===lg.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=lg.active;let e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(e){this.client.logger.warn(e)}}this.requestQueue.state=lg.idle}),Q(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}`)}}),Q(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}`)}}),Q(this,`onRelayEventUnknownPayload`,e=>{let{topic:t}=e,{message:n}=H(`MISSING_OR_INVALID`,`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw Error(n)}),Q(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)}),Q(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(Id.proposal_listener_not_found)),this.isValidConnect(Z({},n.params));let s=Z({id:o,pairingTopic:t,expiryTimestamp:a.expiryTimestamp||Hn(sg.wc_sessionPropose.req.ttl),attestation:r,encryptedId:i},a);await this.setProposal(o,s);let c=await this.getVerifyContext({attestationId:r,hash:tl(JSON.stringify(n)),encryptedId:i,metadata:s.proposer.metadata});e?.addTrace(Fd.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:sg.wc_sessionPropose.autoReject}),this.client.logger.error(e)}}),Q(this,`onSessionProposeResponse`,async(e,t,n)=>{let{id:r}=t;if(P(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(T(t)){await this.deleteProposal(r);let e=z(`session_connect`,r);if(this.events.listenerCount(e)===0)throw Error(`emitting ${e} without any listeners, 954`);this.events.emit(e,{error:t.error})}}),Q(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=Eg(Z(Z(Z({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:K.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(z(`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})}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),Q(this,`onSessionSettleResponse`,async(e,t)=>{let{id:n}=t;P(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(z(`session_approve`,n),{})):T(t)&&(await this.client.session.delete(e,U(`USER_DISCONNECTED`)),this.events.emit(z(`session_approve`,n),{error:t.error}))}),Q(this,`onSessionUpdateRequest`,async(e,t)=>{let{params:n,id:r}=t;try{let t=`${e}_session_update`,i=qu.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:U(`INVALID_UPDATE_REQUEST`)});return}this.isValidUpdate(Z({topic:e},n));try{qu.set(t,r),await this.client.session.update(e,{namespaces:n.namespaces}),await this.sendResult({id:r,topic:e,result:!0})}catch(e){throw qu.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)}}),Q(this,`isRequestOutOfSync`,(e,t)=>t.toString().slice(0,-3)<e.toString().slice(0,-3)),Q(this,`onSessionUpdateResponse`,(e,t)=>{let{id:n}=t,r=z(`session_update`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);P(t)?this.events.emit(z(`session_update`,n),{}):T(t)&&this.events.emit(z(`session_update`,n),{error:t.error})}),Q(this,`onSessionExtendRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,Hn(ag)),await this.sendResult({id:n,topic:e,result:!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)}}),Q(this,`onSessionExtendResponse`,(e,t)=>{let{id:n}=t,r=z(`session_extend`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);P(t)?this.events.emit(z(`session_extend`,n),{}):T(t)&&this.events.emit(z(`session_extend`,n),{error:t.error})}),Q(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)}}),Q(this,`onSessionPingResponse`,(e,t)=>{let{id:n}=t,r=z(`session_ping`,n);setTimeout(()=>{if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners 2176`);P(t)?this.events.emit(z(`session_ping`,n),{}):T(t)&&this.events.emit(z(`session_ping`,n),{error:t.error})},500)}),Q(this,`onSessionDeleteRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),await Promise.all([new Promise(t=>{this.client.core.relayer.once(G.publish,async()=>{t(await this.deleteSession({topic:e,id:n}))})}),this.sendResult({id:n,topic:e,result:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:U(`USER_DISCONNECTED`)})]).catch(e=>this.client.logger.error(e))}catch(e){this.client.logger.error(e)}}),Q(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(Z({topic:r},l));let e=this.client.session.get(r),i={id:c,topic:r,params:l,verifyContext:await this.getVerifyContext({attestationId:a,hash:tl(JSON.stringify(O(`wc_sessionRequest`,l,c))),encryptedId:o,metadata:e.peer.metadata,transportType:s})};await this.setPendingSessionRequest(i),s===K.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)}}),Q(this,`onSessionRequestResponse`,(e,t)=>{let{id:n}=t,r=z(`session_request`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);P(t)?this.events.emit(z(`session_request`,n),{result:t.result}):T(t)&&this.events.emit(z(`session_request`,n),{error:t.error})}),Q(this,`onSessionEventRequest`,async(e,t)=>{let{id:n,params:r}=t;try{let t=`${e}_session_event_${r.event.name}`,i=qu.get(t);if(i&&this.isRequestOutOfSync(i,n)){this.client.logger.info(`Discarding out of sync request - ${n}`);return}this.isValidEmit(Z({topic:e},r)),this.client.events.emit(`session_event`,{id:n,topic:e,params:r}),qu.set(t,n)}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),Q(this,`onSessionAuthenticateResponse`,(e,t)=>{let{id:n}=t;this.client.logger.trace({type:`method`,method:`onSessionAuthenticateResponse`,topic:e,payload:t}),P(t)?this.events.emit(z(`session_request`,n),{result:t.result}):T(t)&&this.events.emit(z(`session_request`,n),{error:t.error})}),Q(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:tl(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===K.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:sg.wc_sessionAuthenticate.autoReject,appLink:a})}}),Q(this,`addSessionRequestToSessionRequestQueue`,e=>{this.sessionRequestQueue.queue.push(e)}),Q(this,`cleanupAfterResponse`,e=>{this.deletePendingSessionRequest(e.response.id,{message:`fulfilled`,code:0}),setTimeout(()=>{this.sessionRequestQueue.state=lg.idle,this.processSessionRequestQueue()},(0,R.toMiliseconds)(this.requestQueueDelay))}),Q(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=z(`session_request`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);this.events.emit(z(`session_request`,e.request.id),{error:t})})}),Q(this,`processSessionRequestQueue`,()=>{if(this.sessionRequestQueue.state===lg.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.emitSessionRequest(e)}catch(e){this.client.logger.error(e)}}),Q(this,`emitSessionRequest`,e=>{if(this.emittedSessionRequests.has(e.id)){this.client.logger.warn({id:e.id},`Skipping emitting \`session_request\` event for duplicate request. id: ${e.id}`);return}this.sessionRequestQueue.state=lg.active,this.emittedSessionRequests.add(e.id),this.client.events.emit(`session_request`,e)}),Q(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:O(`wc_sessionPropose`,Eg(Z({},t),{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties,scopedProperties:t.scopedProperties}),t.id),attestation:t.attestation,encryptedId:t.encryptedId})}),Q(this,`isValidConnect`,async e=>{if(!Tu(e)){let{message:t}=H(`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(iu(t)||await this.isValidPairingTopic(t),!Cu(o,!0)){let{message:e}=H(`MISSING_OR_INVALID`,`connect() relays: ${o}`);throw Error(e)}if(!iu(n)&&ru(n)!==0){let e=`requiredNamespaces are deprecated and are automatically assigned to optionalNamespaces`;[`fatal`,`error`,`silent`].includes(this.client.logger.level)?console.warn(e):this.client.logger.warn(e),this.validateNamespaces(n,`requiredNamespaces`)}if(!iu(r)&&ru(r)!==0&&this.validateNamespaces(r,`optionalNamespaces`),iu(i)||this.validateSessionProps(i,`sessionProperties`),!iu(a)){this.validateSessionProps(a,`scopedProperties`);let e=Object.keys(n||{}).concat(Object.keys(r||{}));if(!Object.keys(a).every(t=>e.includes(t.split(`:`)[0])))throw Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(a)}, required/optional namespaces: ${JSON.stringify(e)}`)}}),Q(this,`validateNamespaces`,(e,t)=>{let n=bu(e,`connect()`,t);if(n)throw Error(n.message)}),Q(this,`isValidApprove`,async e=>{if(!Tu(e))throw Error(H(`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=xu(n,`approve()`);if(s)throw Error(s.message);let c=Nu(o.requiredNamespaces,n,`approve()`);if(c)throw Error(c.message);if(!W(r,!0)){let{message:e}=H(`MISSING_OR_INVALID`,`approve() relayProtocol: ${r}`);throw Error(e)}if(iu(i)||this.validateSessionProps(i,`sessionProperties`),!iu(a)){this.validateSessionProps(a,`scopedProperties`);let e=new Set(Object.keys(n));if(!Object.keys(a).every(t=>e.has(t.split(`:`)[0])))throw Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(a)}, approved namespaces: ${Array.from(e).join(`, `)}`)}}),Q(this,`isValidReject`,async e=>{if(!Tu(e)){let{message:t}=H(`MISSING_OR_INVALID`,`reject() params: ${e}`);throw Error(t)}let{id:t,reason:n}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!Eu(n)){let{message:e}=H(`MISSING_OR_INVALID`,`reject() reason: ${JSON.stringify(n)}`);throw Error(e)}}),Q(this,`isValidSessionSettleRequest`,e=>{if(!Tu(e)){let{message:t}=H(`MISSING_OR_INVALID`,`onSessionSettleRequest() params: ${e}`);throw Error(t)}let{relay:t,controller:n,namespaces:r,expiry:i}=e;if(!Su(t)){let{message:e}=H(`MISSING_OR_INVALID`,`onSessionSettleRequest() relay protocol should be a string`);throw Error(e)}let a=fu(n,`onSessionSettleRequest()`);if(a)throw Error(a.message);let o=xu(r,`onSessionSettleRequest()`);if(o)throw Error(o.message);if(Un(i)){let{message:e}=H(`EXPIRED`,`onSessionSettleRequest()`);throw Error(e)}}),Q(this,`isValidUpdate`,async e=>{if(!Tu(e)){let{message:t}=H(`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=xu(n,`update()`);if(i)throw Error(i.message);let a=Nu(r.requiredNamespaces,n,`update()`);if(a)throw Error(a.message)}),Q(this,`isValidExtend`,async e=>{if(!Tu(e)){let{message:t}=H(`MISSING_OR_INVALID`,`extend() params: ${e}`);throw Error(t)}let{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)}),Q(this,`isValidRequest`,async e=>{if(!Tu(e)){let{message:t}=H(`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(!Au(a,r)){let{message:e}=H(`MISSING_OR_INVALID`,`request() chainId: ${r}`);throw Error(e)}if(!Du(n)){let{message:e}=H(`MISSING_OR_INVALID`,`request() ${JSON.stringify(n)}`);throw Error(e)}if(!ju(a,r,n.method)){let{message:e}=H(`MISSING_OR_INVALID`,`request() method: ${n.method}`);throw Error(e)}if(i&&!Lu(i,cg)){let{message:e}=H(`MISSING_OR_INVALID`,`request() expiry: ${i}. Expiry must be a number (in seconds) between ${cg.min} and ${cg.max}`);throw Error(e)}}),Q(this,`isValidRespond`,async e=>{var t;if(!Tu(e)){let{message:t}=H(`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(!Ou(r)){let{message:e}=H(`MISSING_OR_INVALID`,`respond() response: ${JSON.stringify(r)}`);throw Error(e)}}),Q(this,`isValidPing`,async e=>{if(!Tu(e)){let{message:t}=H(`MISSING_OR_INVALID`,`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),Q(this,`isValidEmit`,async e=>{if(!Tu(e)){let{message:t}=H(`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(!Au(i,r)){let{message:e}=H(`MISSING_OR_INVALID`,`emit() chainId: ${r}`);throw Error(e)}if(!ku(n)){let{message:e}=H(`MISSING_OR_INVALID`,`emit() event: ${JSON.stringify(n)}`);throw Error(e)}if(!Mu(i,r,n.name)){let{message:e}=H(`MISSING_OR_INVALID`,`emit() event: ${JSON.stringify(n)}`);throw Error(e)}}),Q(this,`isValidDisconnect`,async e=>{if(!Tu(e)){let{message:t}=H(`MISSING_OR_INVALID`,`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),Q(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(!W(n,!1))throw Error(`uri is required parameter`);if(!W(r,!1))throw Error(`domain is required parameter`);if(!W(i,!1))throw Error(`nonce is required parameter`);if([...new Set(t.map(e=>on(e).namespace))].length>1)throw Error(`Multi-namespace requests are not supported. Please request single namespace only.`);let{namespace:a}=on(t[0]);if(a!==`eip155`)throw Error(`Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.`)}),Q(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===K.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}),Q(this,`validateSessionProps`,(e,t)=>{Object.values(e).forEach((n,r)=>{if(n==null){let{message:i}=H(`MISSING_OR_INVALID`,`${t} must contain an existing value for each key. Received: ${n} for key ${Object.keys(e)[r]}`);throw Error(i)}})}),Q(this,`getPendingAuthRequest`,e=>{let t=this.client.auth.requests.get(e);return typeof t==`object`?t:void 0}),Q(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)}}}),Q(this,`checkRecentlyDeleted`,e=>{let t=this.recentlyDeletedMap.get(e);if(t){let{message:n}=H(`MISSING_OR_INVALID`,`Record was recently deleted - ${t}: ${e}`);throw Error(n)}}),Q(this,`isLinkModeEnabled`,(e,t)=>!e||t!==K.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`),Q(this,`getAppLinkIfEnabled`,(e,t)=>this.isLinkModeEnabled(e,t)?e?.redirect?.universal:void 0),Q(this,`handleLinkModeMessage`,({url:e})=>{if(!e||!e.includes(`wc_ev`)||!e.includes(`topic`))return;let t=Yn(e,`topic`)||``,n=decodeURIComponent(Yn(e,`wc_ev`)||``),r=this.client.session.keys.includes(t);r&&this.client.session.update(t,{transportType:K.link_mode}),this.client.core.dispatchEnvelope({topic:t,message:n,sessionExists:r})}),Q(this,`registerLinkModeListeners`,async()=>{var e;if(Zn()||bn()&&(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)}}}),Q(this,`getTVFParams`,(e,t,n)=>{var r;if(!((r=t.request)!=null&&r.method))return{};let i={correlationId:e,rpcMethods:[t.request.method],chainId:t.chainId};try{i.txHashes=this.extractTxHashesFromResult(t.request,n),i.contractAddresses=this.isValidContractData(t.request.params)?[t.request.params?.[0]?.to]:[]}catch(e){this.client.logger.warn(`Error getting TVF params`,e)}return i}),Q(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}),Q(this,`extractTxHashesFromResult`,(e,t)=>{try{if(!t)return[];let n=e.method,r=ug[n];if(n===`sui_signTransaction`)return[ra(t.transactionBytes)];if(n===`near_signTransaction`)return[ia(t)];if(n===`near_signTransactions`)return t.map(e=>ia(e));if(n===`xrpl_signTransactionFor`||n===`xrpl_signTransaction`)return[t.tx_json?.hash];if(n===`polkadot_signTransaction`)return[nd({transaction:e.params.transactionPayload,signature:t.signature})];if(n===`algo_signTxn`)return nu(t)?t.map(e=>oa(e)):[oa(t)];if(n===`cosmos_signDirect`)return[ca(t)];if(n===`wallet_sendCalls`)return la(t);if(typeof t==`string`)return[t];let i=t[r.key];if(nu(i))return n===`solana_signAllTransactions`?i.map(e=>na(e)):i;if(typeof i==`string`)return[i]}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}=H(`NOT_INITIALIZED`,this.name);throw Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(G.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(vg)?this.client.auth.authKeys.get(vg):{responseTopic:void 0,publicKey:void 0};try{let e=await this.client.core.crypto.decode(t,n,{receiverPublicKey:a,encoding:i===K.link_mode?Gc:Wc});v(e)?(this.client.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e,attestation:r,transportType:i,encryptedId:tl(n)})):j(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(Dd.expired,async e=>{let{topic:t,id:n}=Vn(e.target);if(n&&this.client.pendingRequest.keys.includes(n))return await this.deletePendingSessionRequest(n,H(`EXPIRED`),!0);if(n&&this.client.auth.requests.keys.includes(n))return await this.deletePendingAuthRequest(n,H(`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(Cd.create,e=>this.onPairingCreated(e)),this.client.core.pairing.events.on(Cd.delete,e=>{this.addToRecentlyDeleted(e.topic,`pairing`)})}isValidPairingTopic(e){if(!W(e,!1)){let{message:t}=H(`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}=H(`NO_MATCHING_KEY`,`pairing topic doesn't exist: ${e}`);throw Error(t)}if(Un(this.client.core.pairing.pairings.get(e).expiry)){let{message:t}=H(`EXPIRED`,`pairing topic: ${e}`);throw Error(t)}}async isValidSessionTopic(e){if(!W(e,!1)){let{message:t}=H(`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}=H(`NO_MATCHING_KEY`,`session topic doesn't exist: ${e}`);throw Error(t)}if(Un(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});let{message:t}=H(`EXPIRED`,`session topic: ${e}`);throw Error(t)}if(!this.client.core.crypto.keychain.has(e)){let{message:t}=H(`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(W(e,!1)){let{message:t}=H(`NO_MATCHING_KEY`,`session or pairing topic doesn't exist: ${e}`);throw Error(t)}else{let{message:t}=H(`MISSING_OR_INVALID`,`session or pairing topic should be a string: ${e}`);throw Error(t)}}async isValidProposalId(e){if(!wu(e)){let{message:t}=H(`MISSING_OR_INVALID`,`proposal id should be a number: ${e}`);throw Error(t)}if(!this.client.proposal.keys.includes(e)){let{message:t}=H(`NO_MATCHING_KEY`,`proposal id doesn't exist: ${e}`);throw Error(t)}if(Un(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);let{message:t}=H(`EXPIRED`,`proposal id: ${e}`);throw Error(t)}}},Og=class extends _h{constructor(e,t){super(e,t,ng,$h),this.core=e,this.logger=t}},kg=class extends _h{constructor(e,t){super(e,t,ig,$h),this.core=e,this.logger=t}},Ag=class extends _h{constructor(e,t){super(e,t,dg,$h,e=>e.id),this.core=e,this.logger=t}},jg=class extends _h{constructor(e,t){super(e,t,mg,_g,()=>vg),this.core=e,this.logger=t}},Mg=class extends _h{constructor(e,t){super(e,t,hg,_g),this.core=e,this.logger=t}},Ng=class extends _h{constructor(e,t){super(e,t,gg,_g,e=>e.id),this.core=e,this.logger=t}},Pg=Object.defineProperty,Fg=(e,t,n)=>t in e?Pg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ig=(e,t,n)=>Fg(e,typeof t==`symbol`?t:t+``,n),Lg=class{constructor(e,t){this.core=e,this.logger=t,Ig(this,`authKeys`),Ig(this,`pairingTopics`),Ig(this,`requests`),this.authKeys=new jg(this.core,this.logger),this.pairingTopics=new Mg(this.core,this.logger),this.requests=new Ng(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}},Rg=Object.defineProperty,zg=(e,t,n)=>t in e?Rg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$=(e,t,n)=>zg(e,typeof t==`symbol`?t:t+``,n),Bg=class e extends gt{constructor(e){super(e),$(this,`protocol`,`wc`),$(this,`version`,2),$(this,`name`,eg.name),$(this,`metadata`),$(this,`core`),$(this,`logger`),$(this,`events`,new Se.EventEmitter),$(this,`engine`),$(this,`session`),$(this,`proposal`),$(this,`pendingRequest`),$(this,`auth`),$(this,`signConfig`),$(this,`on`,(e,t)=>this.events.on(e,t)),$(this,`once`,(e,t)=>this.events.once(e,t)),$(this,`off`,(e,t)=>this.events.off(e,t)),$(this,`removeListener`,(e,t)=>this.events.removeListener(e,t)),$(this,`removeAllListeners`,e=>this.events.removeAllListeners(e)),$(this,`connect`,async e=>{try{return await this.engine.connect(e)}catch(e){throw this.logger.error(e.message),e}}),$(this,`pair`,async e=>{try{return await this.engine.pair(e)}catch(e){throw this.logger.error(e.message),e}}),$(this,`approve`,async e=>{try{return await this.engine.approve(e)}catch(e){throw this.logger.error(e.message),e}}),$(this,`reject`,async e=>{try{return await this.engine.reject(e)}catch(e){throw this.logger.error(e.message),e}}),$(this,`update`,async e=>{try{return await this.engine.update(e)}catch(e){throw this.logger.error(e.message),e}}),$(this,`extend`,async e=>{try{return await this.engine.extend(e)}catch(e){throw this.logger.error(e.message),e}}),$(this,`request`,async e=>{try{return await this.engine.request(e)}catch(e){throw this.logger.error(e.message),e}}),$(this,`respond`,async e=>{try{return await this.engine.respond(e)}catch(e){throw this.logger.error(e.message),e}}),$(this,`ping`,async e=>{try{return await this.engine.ping(e)}catch(e){throw this.logger.error(e.message),e}}),$(this,`emit`,async e=>{try{return await this.engine.emit(e)}catch(e){throw this.logger.error(e.message),e}}),$(this,`disconnect`,async e=>{try{return await this.engine.disconnect(e)}catch(e){throw this.logger.error(e.message),e}}),$(this,`find`,e=>{try{return this.engine.find(e)}catch(e){throw this.logger.error(e.message),e}}),$(this,`getPendingSessionRequests`,()=>{try{return this.engine.getPendingSessionRequests()}catch(e){throw this.logger.error(e.message),e}}),$(this,`authenticate`,async(e,t)=>{try{return await this.engine.authenticate(e,t)}catch(e){throw this.logger.error(e.message),e}}),$(this,`formatAuthMessage`,e=>{try{return this.engine.formatAuthMessage(e)}catch(e){throw this.logger.error(e.message),e}}),$(this,`approveSessionAuthenticate`,async e=>{try{return await this.engine.approveSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),$(this,`rejectSessionAuthenticate`,async e=>{try{return await this.engine.rejectSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),this.name=e?.name||eg.name,this.metadata=Dn(e?.metadata),this.signConfig=e?.signConfig;let t=typeof e?.logger<`u`&&typeof e?.logger!=`string`?e.logger:(0,Ce.default)(Ve({level:e?.logger||eg.logger}));this.core=e?.core||new Zh(e),this.logger=Ke(t,this.name),this.session=new kg(this.core,this.logger),this.proposal=new Og(this.core,this.logger),this.pendingRequest=new Ag(this.core,this.logger),this.engine=new Dg(this),this.auth=new Lg(this.core,this.logger)}static async init(t){let n=new e(t);return await n.initialize(),n}get context(){return We(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`)}catch(e){throw this.logger.info(`SignClient Initialization Failure`),this.logger.error(e.message),e}}},Vg=`error`,Hg=`wss://relay.walletconnect.org`,Ug=`wc@2:universal_provider:`,Wg=`https://rpc.walletconnect.org/v1/`,Gg=`generic`,Kg=`${Wg}bundler`,qg=`call_status`,Jg=86400,Yg={DEFAULT_CHAIN_CHANGED:`default_chain_changed`};function Xg(e){return e==null||typeof e!=`object`&&typeof e!=`function`}function Zg(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function Qg(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var $g=`[object RegExp]`,e_=`[object String]`,t_=`[object Number]`,n_=`[object Boolean]`,r_=`[object Arguments]`,i_=`[object Symbol]`,a_=`[object Date]`,o_=`[object Map]`,s_=`[object Set]`,c_=`[object Array]`,l_=`[object ArrayBuffer]`,u_=`[object Object]`,d_=`[object DataView]`,f_=`[object Uint8Array]`,p_=`[object Uint8ClampedArray]`,m_=`[object Uint16Array]`,h_=`[object Uint32Array]`,g_=`[object Int8Array]`,__=`[object Int16Array]`,v_=`[object Int32Array]`,y_=`[object Float32Array]`,b_=`[object Float64Array]`;function x_(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function S_(e,t){return C_(e,void 0,e,new Map,t)}function C_(e,t,n,r=new Map,i=void 0){let a=i?.(e,t,n,r);if(a!=null)return a;if(Xg(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]=C_(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,C_(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(C_(a,void 0,n,r,i));return t}if(typeof Buffer<`u`&&Buffer.isBuffer(e))return e.subarray();if(x_(e)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=C_(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),w_(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),w_(t,e,n,r,i),t}if(e instanceof Blob){let t=new Blob([e],{type:e.type});return r.set(e,t),w_(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,w_(t,e,n,r,i),t}if(typeof e==`object`&&T_(e)){let t=Object.create(Object.getPrototypeOf(e));return r.set(e,t),w_(t,e,n,r,i),t}return e}function w_(e,t,n=e,r,i){let a=[...Object.keys(t),...Zg(t)];for(let o=0;o<a.length;o++){let s=a[o],c=Object.getOwnPropertyDescriptor(e,s);(c==null||c.writable)&&(e[s]=C_(t[s],s,n,r,i))}}function T_(e){switch(Qg(e)){case r_:case c_:case l_:case d_:case n_:case a_:case y_:case b_:case g_:case __:case v_:case o_:case t_:case u_:case $g:case s_:case e_:case i_:case f_:case p_:case m_:case h_:return!0;default:return!1}}function E_(e,t){return S_(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 t_:case e_:case n_:{let t=new e.constructor(e?.valueOf());return w_(t,e),t}case r_:{let t={};return w_(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}})}function D_(e){return E_(e)}function O_(e){return typeof e==`object`&&!!e&&Qg(e)===`[object Arguments]`}function k_(e){return typeof e==`object`&&!!e}function A_(){}function j_(e){return x_(e)}function M_(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 N_(e){if(Xg(e))return e;if(Array.isArray(e)||x_(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}if(typeof File<`u`&&e instanceof File)return new n([e],e.name,{type:e.type,lastModified:e.lastModified});if(typeof e==`object`){let n=Object.create(t);return Object.assign(n,e)}return e}function P_(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=F_(i,t,r,new Map)}return i}function F_(e,t,n,r){if(Xg(e)&&(e=Object(e)),typeof t!=`object`||!t)return e;if(r.has(t))return N_(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),...Zg(t)];for(let a=0;a<i.length;a++){let o=i[a],s=t[o],c=e[o];if(O_(s)&&(s={...s}),O_(c)&&(c={...c}),typeof Buffer<`u`&&Buffer.isBuffer(s)&&(s=D_(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)||k_(c)&&k_(s)?e[o]=F_(c,s,n,r):c==null&&M_(s)?e[o]=F_({},s,n,r):c==null&&j_(s)?e[o]=D_(s):(c===void 0||s!==void 0)&&(e[o]=s):e[o]=l}return e}function I_(e,...t){return P_(e,...t,A_)}var L_=Object.defineProperty,R_=Object.defineProperties,z_=Object.getOwnPropertyDescriptors,B_=Object.getOwnPropertySymbols,V_=Object.prototype.hasOwnProperty,H_=Object.prototype.propertyIsEnumerable,U_=(e,t,n)=>t in e?L_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,W_=(e,t)=>{for(var n in t||={})V_.call(t,n)&&U_(e,n,t[n]);if(B_)for(var n of B_(t))H_.call(t,n)&&U_(e,n,t[n]);return e},G_=(e,t)=>R_(e,z_(t));function K_(e,t,n){let r=on(e);return t.rpcMap?.[r.reference]||`${Wg}?chainId=${r.namespace}:${r.reference}&projectId=${n}`}function q_(e){return e.includes(`:`)?e.split(`:`)[1]:e}function J_(e){return e.map(e=>`${e.split(`:`)[0]}:${e.split(`:`)[1]}`)}function Y_(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 X_(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>t?.chains?.length&&t?.chains?.length>0))}function Z_(e={},t={}){return I_(X_(Q_(e)),X_(Q_(t)))}function Q_(e){let t={};if(!ru(e))return t;for(let[n,r]of Object.entries(e)){let e=Jl(n)?[n]:r.chains,i=r.methods||[],a=r.events||[],o=r.rpcMap||{},s=Yl(n);t[s]=G_(W_(W_({},t[s]),r),{chains:Wn(e,t[s]?.chains),methods:Wn(i,t[s]?.methods),events:Wn(a,t[s]?.events)}),(ru(o)||ru(t[s]?.rpcMap||{}))&&(t[s].rpcMap=W_(W_({},o),t[s]?.rpcMap))}return t}function $_(e){return e.includes(`:`)?e.split(`:`)[2]:e}function ev(e){let t={};for(let[n,r]of Object.entries(e)){let e=r.methods||[],i=r.events||[],a=r.accounts||[];t[n]={chains:Jl(n)?[n]:r.chains?r.chains:J_(r.accounts),methods:e,events:i,accounts:a}}return t}function tv(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))}function nv(e){try{let t=JSON.parse(e);return typeof t==`object`&&!!t&&!Array.isArray(t)}catch{return!1}}var rv={},iv=e=>rv[e],av=(e,t)=>{rv[e]=t},ov=Object.defineProperty,sv=Object.getOwnPropertySymbols,cv=Object.prototype.hasOwnProperty,lv=Object.prototype.propertyIsEnumerable,uv=(e,t,n)=>t in e?ov(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dv=(e,t)=>{for(var n in t||={})cv.call(t,n)&&uv(e,n,t[n]);if(sv)for(var n of sv(t))lv.call(t,n)&&uv(e,n,t[n]);return e},fv=`eip155`,pv=[`atomic`,`flow-control`,`paymasterService`,`sessionKeys`,`auxiliaryFunds`],mv=e=>e&&e.startsWith(`0x`)?BigInt(e).toString(10):e,hv=e=>e&&e.startsWith(`0x`)?e:`0x${BigInt(e).toString(16)}`,gv=e=>Object.keys(e).filter(e=>pv.includes(e)).reduce((t,n)=>(t[n]=_v(e[n]),t),{}),_v=e=>typeof e==`string`&&nv(e)?JSON.parse(e):e,vv=(e,t,n)=>{let{sessionProperties:r={},scopedProperties:i={}}=e,a={};if(!ru(i)&&!ru(r))return;let o=gv(r);for(let e of n){let n=mv(e);if(!n)continue;a[hv(n)]=o;let r=i?.[`${fv}:${n}`];if(r){let e=r?.[`${fv}:${n}:${t}`];a[hv(n)]=dv(dv({},a[hv(n)]),gv(e||r))}}for(let[e,t]of Object.entries(a))Object.keys(t).length===0&&delete a[e];return Object.keys(a).length>0?a:void 0},yv=Object.defineProperty,bv=(e,t,n)=>t in e?yv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,xv=(e,t,n)=>bv(e,typeof t==`symbol`?t:t+``,n),Sv,Cv=class e{constructor(e){xv(this,`storage`),this.storage=e}async getItem(e){return await this.storage.getItem(e)}async setItem(e,t){return await this.storage.setItem(e,t)}async removeItem(e){return await this.storage.removeItem(e)}static getStorage(t){return Sv||=new e(t),Sv}},wv=Object.defineProperty,Tv=Object.defineProperties,Ev=Object.getOwnPropertyDescriptors,Dv=Object.getOwnPropertySymbols,Ov=Object.prototype.hasOwnProperty,kv=Object.prototype.propertyIsEnumerable,Av=(e,t,n)=>t in e?wv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jv=(e,t)=>{for(var n in t||={})Ov.call(t,n)&&Av(e,n,t[n]);if(Dv)for(var n of Dv(t))kv.call(t,n)&&Av(e,n,t[n]);return e},Mv=(e,t)=>Tv(e,Ev(t));async function Nv(e,t){let n=on(e.result.capabilities.caip345.caip2),r=e.result.capabilities.caip345.transactionHashes,i=await Promise.allSettled(r.map(e=>Pv(n.reference,e,t))),a=i.filter(e=>e.status===`fulfilled`).map(e=>e.value).filter(e=>e);i.filter(e=>e.status===`rejected`).forEach(e=>console.warn(`Failed to fetch transaction receipt:`,e.reason));let o=!a.length||a.some(e=>!e),s=a.every(e=>e?.status===`0x1`),c=a.every(e=>e?.status===`0x0`),l=a.some(e=>e?.status===`0x0`),u;return o?u=100:s?u=200:c?u=500:l&&(u=600),{id:e.result.id,version:e.request.version,atomic:e.request.atomicRequired,chainId:e.request.chainId,capabilities:e.result.capabilities,receipts:a,status:u}}async function Pv(e,t,n){return await n(parseInt(e)).request(O(`eth_getTransactionReceipt`,[t]))}async function Fv({sendCalls:e,storage:t}){let n=await t.getItem(qg);await t.setItem(qg,Mv(jv({},n),{[e.result.id]:{request:e.request,result:e.result,expiry:Hn(Jg)}}))}async function Iv({resultId:e,storage:t}){let n=await t.getItem(qg);if(n){delete n[e],await t.setItem(qg,n);for(let e in n)Un(n[e].expiry)&&delete n[e];await t.setItem(qg,n)}}async function Lv({resultId:e,storage:t}){let n=(await t.getItem(qg))?.[e];if(n&&!Un(n.expiry))return n;await Iv({resultId:e,storage:t})}var Rv=Object.defineProperty,zv=Object.defineProperties,Bv=Object.getOwnPropertyDescriptors,Vv=Object.getOwnPropertySymbols,Hv=Object.prototype.hasOwnProperty,Uv=Object.prototype.propertyIsEnumerable,Wv=(e,t,n)=>t in e?Rv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Gv=(e,t)=>{for(var n in t||={})Hv.call(t,n)&&Wv(e,n,t[n]);if(Vv)for(var n of Vv(t))Uv.call(t,n)&&Wv(e,n,t[n]);return e},Kv=(e,t)=>zv(e,Bv(t)),qv=(e,t,n)=>Wv(e,typeof t==`symbol`?t:t+``,n),Jv=class{constructor(e){qv(this,`name`,`eip155`),qv(this,`client`),qv(this,`chainId`),qv(this,`namespace`),qv(this,`httpProviders`),qv(this,`events`),qv(this,`storage`),this.namespace=e.namespace,this.events=iv(`events`),this.client=iv(`client`),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain()),this.storage=Cv.getStorage(this.client.core.storage)}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);case`wallet_sendCalls`:return await this.sendCalls(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);let n=this.chainId;this.chainId=parseInt(e),this.events.emit(Yg.DEFAULT_CHAIN_CHANGED,{currentCaipChainId:`${this.name}:${e}`,previousCaipChainId:`${this.name}:${n}`})}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||K_(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new N(new F(n,iv(`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(q_(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(e){let t=e||this.chainId;return this.httpProviders[t]||(this.httpProviders=Kv(Gv({},this.httpProviders),{[t]:this.createHttpProvider(t)}),this.httpProviders[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],n=e.request?.params?.[1]||[];if(!t)throw Error("Missing address parameter in `wallet_getCapabilities` request");let r=this.client.session.get(e.topic),i=r?.sessionProperties?.capabilities||{},a=`${t}${n.join(`,`)}`,o=i?.[a];if(o)return o;let s;try{s=vv(r,t,n)}catch(e){console.warn(`Failed to extract capabilities from session`,e)}if(s)return s;let c=await this.client.request(e);try{await this.client.session.update(e.topic,{sessionProperties:Kv(Gv({},r.sessionProperties||{}),{capabilities:Kv(Gv({},i||{}),{[a]:c})})})}catch(e){console.warn(`Failed to update session with capabilities`,e)}return c}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)}let i=await Lv({resultId:e.request.params?.[0],storage:this.storage});if(i)try{return await Nv(i,this.getHttpProvider.bind(this))}catch(e){console.warn(`Failed to fetch call status from stored send calls`,e,i)}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(O(`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`${Kg}?projectId=${this.client.core.projectId}&chainId=${e}&bundler=${t}`}async sendCalls(e){let t=await this.client.request(e),n=e.request.params?.[0],r=t?.id,i=t?.capabilities||{},a=i?.caip345?.caip2,o=i?.caip345?.transactionHashes;return!r||!a||!(o!=null&&o.length)||await Fv({sendCalls:{request:n,result:t},storage:this.storage}),t}},Yv=Object.defineProperty,Xv=(e,t,n)=>t in e?Yv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Zv=(e,t,n)=>Xv(e,typeof t==`symbol`?t:t+``,n),Qv=class{constructor(e){Zv(this,`name`,Gg),Zv(this,`client`),Zv(this,`httpProviders`),Zv(this,`events`),Zv(this,`namespace`),Zv(this,`chainId`),this.namespace=e.namespace,this.events=iv(`events`),this.client=iv(`client`),this.chainId=this.getDefaultChain(),this.name=this.getNamespaceName(),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);let n=this.chainId;this.chainId=e,this.events.emit(Yg.DEFAULT_CHAIN_CHANGED,{currentCaipChainId:`${this.name}:${e}`,previousCaipChainId:`${this.name}:${n}`})}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]}getNamespaceName(){let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return on(e).namespace}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=on(e),r=this.namespace?.rpcMap?.[`${n.namespace}:${n.reference}`];t[n.reference]=this.createHttpProvider(e,r)}),t}getHttpProvider(e){let t=on(e).reference,n=this.httpProviders[t];if(typeof n>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return n}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||K_(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new N(new F(n,iv(`disableProviderPing`)))}},$v=Object.defineProperty,ey=Object.defineProperties,ty=Object.getOwnPropertyDescriptors,ny=Object.getOwnPropertySymbols,ry=Object.prototype.hasOwnProperty,iy=Object.prototype.propertyIsEnumerable,ay=(e,t,n)=>t in e?$v(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oy=(e,t)=>{for(var n in t||={})ry.call(t,n)&&ay(e,n,t[n]);if(ny)for(var n of ny(t))iy.call(t,n)&&ay(e,n,t[n]);return e},sy=(e,t)=>ey(e,ty(t)),cy=(e,t,n)=>ay(e,typeof t==`symbol`?t:t+``,n),ly=class e{constructor(e){cy(this,`client`),cy(this,`namespaces`),cy(this,`optionalNamespaces`),cy(this,`sessionProperties`),cy(this,`scopedProperties`),cy(this,`events`,new Se.default),cy(this,`rpcProviders`,{}),cy(this,`session`),cy(this,`providerOpts`),cy(this,`logger`),cy(this,`uri`),cy(this,`disableProviderPing`,!1),this.providerOpts=e,this.logger=typeof e?.logger<`u`&&typeof e?.logger!=`string`?e.logger:(0,Ce.default)(Ve({level:e?.logger||Vg})),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:oy({},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,I(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:U(`USER_DISCONNECTED`)}),await this.cleanup()}async connect(e){if(!this.client)throw Error(`Sign Client not initialized`);if(this.setNamespaces(e),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=ev(this.session.namespaces);this.namespaces=Z_(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=ev(r.namespaces);return this.namespaces=Z_(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);this.getProvider(n).setDefaultChain(r,t)}catch(e){if(!/Please call connect/.test(e.message))throw e}}async cleanupPendingPairings(e={}){try{this.logger.info(`Cleaning up inactive pairings...`);let t=this.client.pairing.getAll();if(!nu(t))return;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}`)}catch(e){this.logger.warn(`Failed to cleanup pending pairings`,e)}}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 Bg.init({core:this.providerOpts.core,logger:this.providerOpts.logger||Vg,relayUrl:this.providerOpts.relayUrl||Hg,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=>Yl(e)))];av(`client`,this.client),av(`events`,this.events),av(`disableProviderPing`,this.disableProviderPing),e.forEach(e=>{if(!this.session)return;let t=Y_(e,this.session);if(t?.length===0)return;let n=J_(t),r=sy(oy({},Z_(this.namespaces,this.optionalNamespaces)[e]),{accounts:t,chains:n});switch(e){case`eip155`:this.rpcProviders[e]=new Jv({namespace:r});break;default:this.rpcProviders[e]=new Qv({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&&nu(e)&&this.events.emit(`accountsChanged`,e.map($_))}else if(r.name===`chainChanged`){let e=t.chainId,n=t.event.data,r=Yl(e),i=tv(e)===tv(n)?e:`${r}:${tv(n)}`;this.onChainChanged({currentCaipChainId: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=sy(oy({},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`,sy(oy({},U(`USER_DISCONNECTED`)),{data:e.topic})))}),this.on(Yg.DEFAULT_CHAIN_CHANGED,e=>{this.onChainChanged(sy(oy({},e),{internal:!0}))})}getProvider(e){return this.rpcProviders[e]||this.rpcProviders[Gg]}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;this.optionalNamespaces=Z_(t,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=>Yl(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=Yl(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({currentCaipChainId:e,previousCaipChainId:t,internal:n=!1}){if(!this.namespaces)return;let[r,i]=this.validateChain(e);i&&(this.updateNamespaceChain(r,i),n?(this.events.emit(`chainChanged`,i),this.emitAccountsChangedOnChainChange({namespace:r,currentCaipChainId:e,previousCaipChainId:t})):this.getProvider(r).setDefaultChain(i),await this.persist(`namespaces`,this.namespaces))}emitAccountsChangedOnChainChange({namespace:e,currentCaipChainId:t,previousCaipChainId:n}){try{if(n===t)return;let r=this.session?.namespaces[e]?.accounts;if(!r)return;let i=r.filter(e=>e.includes(`${t}:`)).map($_);if(!nu(i))return;this.events.emit(`accountsChanged`,i)}catch(e){this.logger.warn(`Failed to emit accountsChanged on chain change`,e)}}updateNamespaceChain(e,t){if(!this.namespaces)return;let n=this.namespaces[e]?e:`${e}:${t}`,r={chains:[],methods:[],events:[],defaultChain:t};this.namespaces[n]?this.namespaces[n]&&(this.namespaces[n].defaultChain=t):this.namespaces[n]=r}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,this.cleanupPendingPairings({deletePairings:!0}),await this.cleanupStorage()}async persist(e,t){let n=this.session?.topic||``;await this.client.core.storage.setItem(`${Ug}/${e}${n}`,t)}async getFromStore(e){let t=this.session?.topic||``;return await this.client.core.storage.getItem(`${Ug}/${e}${t}`)}async deleteFromStore(e){let t=this.session?.topic||``;await this.client.core.storage.removeItem(`${Ug}/${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(Ug)&&await this.client.core.storage.removeItem(t)}catch(e){this.logger.warn(`Failed to cleanup storage`,e)}}},uy=null,dy={getSIWX(){return _e.state.siwx},async initializeIfEnabled(e=pe.getActiveCaipAddress()){let t=_e.state.siwx;if(!(t&&e))return;let[n,r,i]=e.split(`:`);if(pe.checkIfSupportedNetwork(n,`${n}:${r}`))try{if(_e.state.remoteFeatures?.emailCapture){let e=pe.getAccountData(n)?.user;await fe.open({view:`DataCapture`,data:{email:e?.email??void 0}});return}if(uy&&await uy,(await t.getSessions(`${n}:${r}`,i)).length)return;await fe.open({view:`SIWXSignMessage`})}catch(e){console.error(`SIWXUtil:initializeIfEnabled`,e),ue.sendEvent({type:`track`,event:`SIWX_AUTH_ERROR`,properties:this.getSIWXEventProperties(e)}),await me._getClient()?.disconnect().catch(console.error),he.reset(`Connect`),ve.showError(`A problem occurred while trying initialize authentication`)}},async requestSignMessage(){let e=_e.state.siwx,t=ie.getPlainAddress(pe.getActiveCaipAddress()),n=ce(),r=me._getClient();if(!e)throw Error(`SIWX is not enabled`);if(!t)throw Error(`No ActiveCaipAddress found`);if(!n)throw Error(`No ActiveCaipNetwork or client found`);if(!r)throw Error(`No ConnectionController client found`);try{let i=await e.createMessage({chainId:n.caipNetworkId,accountAddress:t}),a=i.toString();le.getConnectorId(n.chainNamespace)===oe.CONNECTOR_ID.AUTH&&he.pushTransactionStack({});let o=await r.signMessage(a);await e.addSession({data:i,message:a,signature:o}),pe.setLastConnectedSIWECaipNetwork(n),fe.close(),ue.sendEvent({type:`track`,event:`SIWX_AUTH_SUCCESS`,properties:this.getSIWXEventProperties()})}catch(e){(!fe.state.open||he.state.view===`ApproveTransaction`)&&await fe.open({view:`SIWXSignMessage`}),ve.showError(`Error signing message`),ue.sendEvent({type:`track`,event:`SIWX_AUTH_ERROR`,properties:this.getSIWXEventProperties(e)}),console.error(`SWIXUtil:requestSignMessage`,e)}},async cancelSignMessage(){try{let e=this.getSIWX();if(e?.getRequired?.()){let t=pe.getLastConnectedSIWECaipNetwork();if(t){let n=await e?.getSessions(t?.caipNetworkId,ie.getPlainAddress(pe.getActiveCaipAddress())||``);n&&n.length>0?await pe.switchActiveNetwork(t):await me.disconnect()}else await me.disconnect()}else fe.close();fe.close(),ue.sendEvent({event:`CLICK_CANCEL_SIWX`,type:`track`,properties:this.getSIWXEventProperties()})}catch(e){console.error(`SIWXUtil:cancelSignMessage`,e)}},async getAllSessions(){let e=this.getSIWX(),t=pe.getAllRequestedCaipNetworks(),n=[];return await Promise.all(t.map(async t=>{let r=await e?.getSessions(t.caipNetworkId,ie.getPlainAddress(pe.getActiveCaipAddress())||``);r&&n.push(...r)})),n},async getSessions(e){let t=_e.state.siwx,n=e?.address;if(!n){let e=pe.getActiveCaipAddress();n=ie.getPlainAddress(e)}let r=e?.caipNetworkId;return r||=pe.getActiveCaipNetwork()?.caipNetworkId,t&&n&&r?t.getSessions(r,n):[]},async isSIWXCloseDisabled(){let e=this.getSIWX();if(e){let t=he.state.view===`ApproveTransaction`,n=he.state.view===`SIWXSignMessage`;if(t||n)return e.getRequired?.()&&(await this.getSessions()).length===0}return!1},async authConnectorAuthenticate({authConnector:e,chainId:t,socialUri:n,preferredAccountType:r,chainNamespace:i}){let a=dy.getSIWX(),o=ce();if(!a||!i.includes(oe.CHAIN.EVM)||_e.state.remoteFeatures?.emailCapture){let i=await e.connect({chainId:t,socialUri:n,preferredAccountType:r});return{address:i.address,chainId:i.chainId,accounts:i.accounts}}let s=`${i}:${t}`,c=await a.createMessage({chainId:s,accountAddress:`<<AccountAddress>>`}),l={accountAddress:c.accountAddress,chainId:c.chainId,domain:c.domain,uri:c.uri,version:c.version,nonce:c.nonce,notBefore:c.notBefore,statement:c.statement,resources:c.resources,requestId:c.requestId,issuedAt:c.issuedAt,expirationTime:c.expirationTime,serializedMessage:c.toString()},u=await e.connect({chainId:t,socialUri:n,siwxMessage:l,preferredAccountType:r});return l.accountAddress=u.address,l.serializedMessage=u.message||``,u.signature&&u.message&&await dy.addEmbeddedWalletSession(l,u.message,u.signature),pe.setLastConnectedSIWECaipNetwork(o),{address:u.address,chainId:u.chainId,accounts:u.accounts}},async addEmbeddedWalletSession(e,t,n){if(uy)return uy;let r=dy.getSIWX();return r?(uy=r.addSession({data:e,message:t,signature:n}).finally(()=>{uy=null}),uy):Promise.resolve()},async universalProviderAuthenticate({universalProvider:e,chains:t,methods:n}){let r=dy.getSIWX(),i=ce(),a=new Set(t.map(e=>e.split(`:`)[0]));if(!r||a.size!==1||!a.has(`eip155`))return!1;let o=await r.createMessage({chainId:ce()?.caipNetworkId||``,accountAddress:``}),s=await e.authenticate({nonce:o.nonce,domain:o.domain,uri:o.uri,exp:o.expirationTime,iat:o.issuedAt,nbf:o.notBefore,requestId:o.requestId,version:o.version,resources:o.resources,statement:o.statement,chainId:o.chainId,methods:n,chains:[o.chainId,...t.filter(e=>e!==o.chainId)]});ve.showLoading(`Authenticating...`,{autoClose:!1});let c={...s.session.peer.metadata,name:s.session.peer.metadata.name,icon:s.session.peer.metadata.icons?.[0],type:`WALLET_CONNECT`};if(pe.setAccountProp(`connectedWalletInfo`,c,Array.from(a)[0]),s?.auths?.length){let t=s.auths.map(t=>{let n=e.client.formatAuthMessage({request:t.p,iss:t.p.iss});return{data:{...t.p,accountAddress:t.p.iss.split(`:`).slice(-1).join(``),chainId:t.p.iss.split(`:`).slice(2,4).join(`:`),uri:t.p.aud,version:t.p.version||o.version,expirationTime:t.p.exp,issuedAt:t.p.iat,notBefore:t.p.nbf},message:n,signature:t.s.s,cacao:t}});try{await r.setSessions(t),i&&pe.setLastConnectedSIWECaipNetwork(i),ue.sendEvent({type:`track`,event:`SIWX_AUTH_SUCCESS`,properties:dy.getSIWXEventProperties()})}catch(t){throw console.error(`SIWX:universalProviderAuth - failed to set sessions`,t),ue.sendEvent({type:`track`,event:`SIWX_AUTH_ERROR`,properties:dy.getSIWXEventProperties(t)}),await e.disconnect().catch(console.error),t}finally{ve.hide()}}return!0},getSIWXEventProperties(e){let t=pe.state.activeChain;if(!t)throw Error(`SIWXUtil:getSIWXEventProperties - namespace is required`);return{network:pe.state.activeCaipNetwork?.caipNetworkId||``,isSmartAccount:ge(t)===se.ACCOUNT_TYPES.SMART_ACCOUNT,message:e?ie.parseError(e):void 0}},async clearSessions(){let e=this.getSIWX();e&&await e.setSessions([])}};export{be as a,Ve as i,ly as n,Ye as r,dy as t};
|