@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,14 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/core-DJhku8Ql.js","assets/preload-helper-QurRbaCr.js","assets/index.es-CwXtBCnD.js","assets/rolldown-runtime-C_s2cVnS.js","assets/dist-Dl07uGq1.js","assets/dist-CoS6E-3x.js","assets/ccip-C3Vjk59S.js","assets/sha3-D7MpjpcL.js","assets/utils-De7E53Fk.js","assets/ConnectorUtil-BS3XprR9.js","assets/_esm-Diwx42KJ.js","assets/sha256-fChkrcNS.js","assets/hmac-D_yamlhz.js","assets/secp256k1-DZXeCH9F.js","assets/utils-oVEYY1QK.js","assets/ApiController-Dm_aZs5q.js","assets/ConstantsUtil-DmLsRHAl.js","assets/SIWXUtil-CB3piUiD.js","assets/esm-DJNUAQDg.js","assets/dist-D03ChgcR.js","assets/eventemitter3-BB9OE-nf.js","assets/p256-B1d5Y6sM.js","assets/hooks.module-QanQLMCy.js","assets/prepareAuthorization-hDX99ycX.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{o as e,t}from"./rolldown-runtime-C_s2cVnS.js";import{t as n}from"./jsx-runtime-CMaQg7dW.js";import{$ as r,Q as i,X as a,et as o,g as s,p as c,tt as l}from"./esm-CY8oIzLS.js";import{A as u,B as d,M as f,N as p,P as m,T as h,_ as g,a as _,c as v,h as y,i as b,j as x,m as S,n as C,o as w,r as T,t as E,w as D,y as O}from"./context-xV99-GKt-D_PAQTXr.js";import{n as k,t as A}from"./eventemitter3-BB9OE-nf.js";import{t as j}from"./preload-helper-QurRbaCr.js";import{t as M}from"./sha256-fChkrcNS.js";import{l as N,n as P,r as ee,s as te,t as F}from"./storage-j7ai9Sne-D8mWN3Z2.js";import{s as ne}from"./utils-De7E53Fk.js";import{t as re}from"./sha3-D7MpjpcL.js";import{t as ie}from"./secp256k1-DZXeCH9F.js";import{t as ae}from"./esm-DJNUAQDg.js";import{n as oe}from"./privy-context-i6NfqAl1-BONGHL94.js";import{t as se}from"./react-DLzuq_tL.js";import{t as ce}from"./dist-Cm7pNAtL.js";import{c as le,d as I,i as ue,l as de,n as fe,s as pe,u as me}from"./errors-DRgCdgfK-CJpKdU03.js";import{c as he,d as L,o as ge,u as _e}from"./wallet-connect-MWSDFRmF-tGAmUa5S.js";import{t as ve}from"./lib-bp6F03Um.js";import{a as ye,d as be,f as xe,g as Se,h as Ce,m as we,n as Te,p as Ee,r as De,t as Oe,u as ke,y as Ae}from"./index-wHxkX697-DiHUiKHG.js";import{a as R,i as je,n as Me,r as Ne,s as Pe}from"./hooks.module-QanQLMCy.js";import{A as Fe,C as Ie,D as Le,E as Re,F as ze,I as Be,M as Ve,N as He,O as Ue,P as We,S as Ge,T as Ke,_ as qe,a as Je,b as Ye,c as Xe,d as Ze,f as Qe,g as $e,h as et,i as tt,j as nt,k as rt,l as it,m as at,n as ot,o as st,p as ct,r as lt,s as ut,t as dt,u as ft,v as pt,w as mt,x as ht,y as gt}from"./index.es-CwXtBCnD.js";import{$ as _t,A as vt,F as yt,G as bt,H as xt,I as St,J as Ct,L as wt,M as Tt,N as Et,P as Dt,Q as Ot,R as kt,U as At,V as jt,X as Mt,Y as Nt,Z as Pt,_ as Ft,a as It,at as Lt,c as Rt,d as zt,dt as Bt,et as Vt,f as Ht,ft as Ut,g as Wt,h as Gt,i as Kt,it as qt,j as Jt,k as Yt,l as Xt,lt as Zt,m as Qt,n as $t,nt as en,o as tn,ot as nn,p as rn,pt as an,q as on,r as sn,rt as cn,s as ln,st as un,t as dn,tt as fn,u as pn,z as mn}from"./pkce-B0PpK2pd-CkbNVGiy.js";import{n as hn}from"./PrivyPluginContext-DA-yS5vO-CDgvyHSu.js";var gn=class e{constructor(e,t){this.scope=e,this.module=t}storeObject(e,t){this.setItem(e,JSON.stringify(t))}loadObject(e){let t=this.getItem(e);return t?JSON.parse(t):void 0}setItem(e,t){localStorage.setItem(this.scopedKey(e),t)}getItem(e){return localStorage.getItem(this.scopedKey(e))}removeItem(e){localStorage.removeItem(this.scopedKey(e))}clear(){let e=this.scopedKey(``),t=[];for(let n=0;n<localStorage.length;n++){let r=localStorage.key(n);typeof r==`string`&&r.startsWith(e)&&t.push(r)}t.forEach(e=>localStorage.removeItem(e))}scopedKey(e){return`-${this.scope}${this.module?`:${this.module}`:``}:${e}`}static clearAll(){new e(`CBWSDK`).clear(),new e(`walletlink`).clear()}},_n={rpc:{invalidInput:-32e3,resourceNotFound:-32001,resourceUnavailable:-32002,transactionRejected:-32003,methodNotSupported:-32004,limitExceeded:-32005,parse:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internal:-32603},provider:{userRejectedRequest:4001,unauthorized:4100,unsupportedMethod:4200,disconnected:4900,chainDisconnected:4901,unsupportedChain:4902}},vn={"-32700":{standard:`JSON RPC 2.0`,message:`Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.`},"-32600":{standard:`JSON RPC 2.0`,message:`The JSON sent is not a valid Request object.`},"-32601":{standard:`JSON RPC 2.0`,message:`The method does not exist / is not available.`},"-32602":{standard:`JSON RPC 2.0`,message:`Invalid method parameter(s).`},"-32603":{standard:`JSON RPC 2.0`,message:`Internal JSON-RPC error.`},"-32000":{standard:`EIP-1474`,message:`Invalid input.`},"-32001":{standard:`EIP-1474`,message:`Resource not found.`},"-32002":{standard:`EIP-1474`,message:`Resource unavailable.`},"-32003":{standard:`EIP-1474`,message:`Transaction rejected.`},"-32004":{standard:`EIP-1474`,message:`Method not supported.`},"-32005":{standard:`EIP-1474`,message:`Request limit exceeded.`},4001:{standard:`EIP-1193`,message:`User rejected the request.`},4100:{standard:`EIP-1193`,message:`The requested account and/or method has not been authorized by the user.`},4200:{standard:`EIP-1193`,message:`The requested method is not supported by this Ethereum provider.`},4900:{standard:`EIP-1193`,message:`The provider is disconnected from all chains.`},4901:{standard:`EIP-1193`,message:`The provider is disconnected from the specified chain.`},4902:{standard:`EIP-3085`,message:`Unrecognized chain ID.`}},yn=`Unspecified error message.`,bn=`Unspecified server error.`;function xn(e,t=yn){if(e&&Number.isInteger(e)){let t=e.toString();if(En(vn,t))return vn[t].message;if(wn(e))return bn}return t}function Sn(e){return Number.isInteger(e)?!!(vn[e.toString()]||wn(e)):!1}function Cn(e,{shouldIncludeStack:t=!1}={}){let n={};if(e&&typeof e==`object`&&!Array.isArray(e)&&En(e,`code`)&&Sn(e.code)){let t=e;n.code=t.code,t.message&&typeof t.message==`string`?(n.message=t.message,En(t,`data`)&&(n.data=t.data)):(n.message=xn(n.code),n.data={originalError:Tn(e)})}else n.code=_n.rpc.internal,n.message=Dn(e,`message`)?e.message:yn,n.data={originalError:Tn(e)};return t&&(n.stack=Dn(e,`stack`)?e.stack:void 0),n}function wn(e){return e>=-32099&&e<=-32e3}function Tn(e){return e&&typeof e==`object`&&!Array.isArray(e)?Object.assign({},e):e}function En(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Dn(e,t){return typeof e==`object`&&!!e&&t in e&&typeof e[t]==`string`}var z={rpc:{parse:e=>On(_n.rpc.parse,e),invalidRequest:e=>On(_n.rpc.invalidRequest,e),invalidParams:e=>On(_n.rpc.invalidParams,e),methodNotFound:e=>On(_n.rpc.methodNotFound,e),internal:e=>On(_n.rpc.internal,e),server:e=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Ethereum RPC Server errors must provide single object argument.`);let{code:t}=e;if(!Number.isInteger(t)||t>-32005||t<-32099)throw Error(`"code" must be an integer such that: -32099 <= code <= -32005`);return On(t,e)},invalidInput:e=>On(_n.rpc.invalidInput,e),resourceNotFound:e=>On(_n.rpc.resourceNotFound,e),resourceUnavailable:e=>On(_n.rpc.resourceUnavailable,e),transactionRejected:e=>On(_n.rpc.transactionRejected,e),methodNotSupported:e=>On(_n.rpc.methodNotSupported,e),limitExceeded:e=>On(_n.rpc.limitExceeded,e)},provider:{userRejectedRequest:e=>kn(_n.provider.userRejectedRequest,e),unauthorized:e=>kn(_n.provider.unauthorized,e),unsupportedMethod:e=>kn(_n.provider.unsupportedMethod,e),disconnected:e=>kn(_n.provider.disconnected,e),chainDisconnected:e=>kn(_n.provider.chainDisconnected,e),unsupportedChain:e=>kn(_n.provider.unsupportedChain,e),custom:e=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Ethereum Provider custom errors must provide single object argument.`);let{code:t,message:n,data:r}=e;if(!n||typeof n!=`string`)throw Error(`"message" must be a nonempty string`);return new Mn(t,n,r)}}};function On(e,t){let[n,r]=An(t);return new jn(e,n||xn(e),r)}function kn(e,t){let[n,r]=An(t);return new Mn(e,n||xn(e),r)}function An(e){if(e){if(typeof e==`string`)return[e];if(typeof e==`object`&&!Array.isArray(e)){let{message:t,data:n}=e;if(t&&typeof t!=`string`)throw Error(`Must specify string message.`);return[t||void 0,n]}}return[]}var jn=class extends Error{constructor(e,t,n){if(!Number.isInteger(e))throw Error(`"code" must be an integer.`);if(!t||typeof t!=`string`)throw Error(`"message" must be a nonempty string.`);super(t),this.code=e,n!==void 0&&(this.data=n)}},Mn=class extends jn{constructor(e,t,n){if(!Nn(e))throw Error(`"code" must be an integer such that: 1000 <= code <= 4999`);super(e,t,n)}};function Nn(e){return Number.isInteger(e)&&e>=1e3&&e<=4999}function Pn(){return e=>e}var Fn=Pn(),In=Pn(),Ln=Pn();function Rn(e){return Math.floor(e)}var zn=/^[0-9]*$/,Bn=/^[a-f0-9]*$/;function Vn(e){return Hn(crypto.getRandomValues(new Uint8Array(e)))}function Hn(e){return[...e].map(e=>e.toString(16).padStart(2,`0`)).join(``)}function Un(e){return new Uint8Array(e.match(/.{1,2}/g).map(e=>Number.parseInt(e,16)))}function Wn(e,t=!1){let n=e.toString(`hex`);return Fn(t?`0x${n}`:n)}function Gn(e){return Wn(tr(e),!0)}function Kn(e){return Ln(e.toString(10))}function qn(e){return Fn(`0x${BigInt(e).toString(16)}`)}function Jn(e){return e.startsWith(`0x`)||e.startsWith(`0X`)}function Yn(e){return Jn(e)?e.slice(2):e}function Xn(e){return Jn(e)?`0x${e.slice(2)}`:`0x${e}`}function Zn(e){if(typeof e!=`string`)return!1;let t=Yn(e).toLowerCase();return Bn.test(t)}function Qn(e,t=!1){if(typeof e==`string`){let n=Yn(e).toLowerCase();if(Bn.test(n))return Fn(t?`0x${n}`:n)}throw z.rpc.invalidParams(`"${String(e)}" is not a hexadecimal string`)}function $n(e,t=!1){let n=Qn(e,!1);return n.length%2==1&&(n=Fn(`0${n}`)),t?Fn(`0x${n}`):n}function er(e){if(typeof e==`string`){let t=Yn(e).toLowerCase();if(Zn(t)&&t.length===40)return In(Xn(t))}throw z.rpc.invalidParams(`Invalid Ethereum address: ${String(e)}`)}function tr(e){if(Buffer.isBuffer(e))return e;if(typeof e==`string`){if(Zn(e)){let t=$n(e,!1);return Buffer.from(t,`hex`)}return Buffer.from(e,`utf8`)}throw z.rpc.invalidParams(`Not binary data: ${String(e)}`)}function nr(e){if(typeof e==`number`&&Number.isInteger(e))return Rn(e);if(typeof e==`string`){if(zn.test(e))return Rn(Number(e));if(Zn(e))return Rn(Number(BigInt($n(e,!0))))}throw z.rpc.invalidParams(`Not an integer: ${String(e)}`)}function rr(e){if(e!==null&&(typeof e==`bigint`||ar(e)))return BigInt(e.toString(10));if(typeof e==`number`)return BigInt(nr(e));if(typeof e==`string`){if(zn.test(e))return BigInt(e);if(Zn(e))return BigInt($n(e,!0))}throw z.rpc.invalidParams(`Not an integer: ${String(e)}`)}function ir(e){if(typeof e==`string`)return JSON.parse(e);if(typeof e==`object`)return e;throw z.rpc.invalidParams(`Not a JSON string or an object: ${String(e)}`)}function ar(e){if(e==null||typeof e.constructor!=`function`)return!1;let{constructor:t}=e;return typeof t.config==`function`&&typeof t.EUCLID==`number`}async function or(){return crypto.subtle.generateKey({name:`ECDH`,namedCurve:`P-256`},!0,[`deriveKey`])}async function sr(e,t){return crypto.subtle.deriveKey({name:`ECDH`,public:t},e,{name:`AES-GCM`,length:256},!1,[`encrypt`,`decrypt`])}async function cr(e,t){let n=crypto.getRandomValues(new Uint8Array(12));return{iv:n,cipherText:await crypto.subtle.encrypt({name:`AES-GCM`,iv:n},e,new TextEncoder().encode(t))}}async function lr(e,{iv:t,cipherText:n}){let r=await crypto.subtle.decrypt({name:`AES-GCM`,iv:t},e,n);return new TextDecoder().decode(r)}function ur(e){switch(e){case`public`:return`spki`;case`private`:return`pkcs8`}}async function dr(e,t){let n=ur(e),r=await crypto.subtle.exportKey(n,t);return Hn(new Uint8Array(r))}async function fr(e,t){let n=ur(e),r=Un(t).buffer;return await crypto.subtle.importKey(n,new Uint8Array(r),{name:`ECDH`,namedCurve:`P-256`},!0,e===`private`?[`deriveKey`]:[])}async function pr(e,t){return cr(t,JSON.stringify(e,(e,t)=>{if(!(t instanceof Error))return t;let n=t;return Object.assign(Object.assign({},n.code?{code:n.code}:{}),{message:n.message})}))}async function mr(e,t){return JSON.parse(await lr(t,e))}var hr={storageKey:`ownPrivateKey`,keyType:`private`},gr={storageKey:`ownPublicKey`,keyType:`public`},_r={storageKey:`peerPublicKey`,keyType:`public`},vr=class{constructor(){this.storage=new gn(`CBWSDK`,`SCWKeyManager`),this.ownPrivateKey=null,this.ownPublicKey=null,this.peerPublicKey=null,this.sharedSecret=null}async getOwnPublicKey(){return await this.loadKeysIfNeeded(),this.ownPublicKey}async getSharedSecret(){return await this.loadKeysIfNeeded(),this.sharedSecret}async setPeerPublicKey(e){this.sharedSecret=null,this.peerPublicKey=e,await this.storeKey(_r,e),await this.loadKeysIfNeeded()}async clear(){this.ownPrivateKey=null,this.ownPublicKey=null,this.peerPublicKey=null,this.sharedSecret=null,this.storage.removeItem(gr.storageKey),this.storage.removeItem(hr.storageKey),this.storage.removeItem(_r.storageKey)}async generateKeyPair(){let e=await or();this.ownPrivateKey=e.privateKey,this.ownPublicKey=e.publicKey,await this.storeKey(hr,e.privateKey),await this.storeKey(gr,e.publicKey)}async loadKeysIfNeeded(){if(this.ownPrivateKey===null&&(this.ownPrivateKey=await this.loadKey(hr)),this.ownPublicKey===null&&(this.ownPublicKey=await this.loadKey(gr)),(this.ownPrivateKey===null||this.ownPublicKey===null)&&await this.generateKeyPair(),this.peerPublicKey===null&&(this.peerPublicKey=await this.loadKey(_r)),this.sharedSecret===null){if(this.ownPrivateKey===null||this.peerPublicKey===null)return;this.sharedSecret=await sr(this.ownPrivateKey,this.peerPublicKey)}}async loadKey(e){let t=this.storage.getItem(e.storageKey);return t?fr(e.keyType,t):null}async storeKey(e,t){let n=await dr(e.keyType,t);this.storage.setItem(e.storageKey,n)}},yr=`4.3.2`,br=`@coinbase/wallet-sdk`;async function xr(e,t){let n=Object.assign(Object.assign({},e),{jsonrpc:`2.0`,id:crypto.randomUUID()}),{result:r,error:i}=await(await window.fetch(t,{method:`POST`,body:JSON.stringify(n),mode:`cors`,headers:{"Content-Type":`application/json`,"X-Cbw-Sdk-Version":yr,"X-Cbw-Sdk-Platform":br}})).json();if(i)throw i;return r}function Sr(){return globalThis.coinbaseWalletExtension}function Cr(){try{let e=globalThis;return e.ethereum??e.top?.ethereum}catch{return}}function wr({metadata:e,preference:t}){var n,r;let{appName:i,appLogoUrl:a,appChainIds:o}=e;if(t.options!==`smartWalletOnly`){let e=Sr();if(e)return(n=e.setAppInfo)==null||n.call(e,i,a,o,t),e}let s=Cr();if(s?.isCoinbaseBrowser)return(r=s.setAppInfo)==null||r.call(s,i,a,o,t),s}function Tr(e){if(!e||typeof e!=`object`||Array.isArray(e))throw z.rpc.invalidParams({message:`Expected a single, non-array, object argument.`,data:e});let{method:t,params:n}=e;if(typeof t!=`string`||t.length===0)throw z.rpc.invalidParams({message:`'args.method' must be a non-empty string.`,data:e});if(n!==void 0&&!Array.isArray(n)&&(typeof n!=`object`||!n))throw z.rpc.invalidParams({message:`'args.params' must be an object or array if provided.`,data:e});switch(t){case`eth_sign`:case`eth_signTypedData_v2`:case`eth_subscribe`:case`eth_unsubscribe`:throw z.provider.unsupportedMethod()}}var Er=`accounts`,Dr=`activeChain`,Or=`availableChains`,kr=`walletCapabilities`,Ar=class{constructor(e){this.metadata=e.metadata,this.communicator=e.communicator,this.callback=e.callback,this.keyManager=new vr,this.storage=new gn(`CBWSDK`,`SCWStateManager`),this.accounts=this.storage.loadObject(Er)??[],this.chain=this.storage.loadObject(Dr)||{id:e.metadata.appChainIds?.[0]??1},this.handshake=this.handshake.bind(this),this.request=this.request.bind(this),this.createRequestMessage=this.createRequestMessage.bind(this),this.decryptResponseMessage=this.decryptResponseMessage.bind(this)}async handshake(e){var t,n;await(t=this.communicator).waitForPopupLoaded?.call(t);let r=await this.createRequestMessage({handshake:{method:e.method,params:Object.assign({},this.metadata,e.params??{})}}),i=await this.communicator.postRequestAndWaitForResponse(r);if(`failure`in i.content)throw i.content.failure;let a=await fr(`public`,i.sender);await this.keyManager.setPeerPublicKey(a);let o=(await this.decryptResponseMessage(i)).result;if(`error`in o)throw o.error;switch(e.method){case`eth_requestAccounts`:{let e=o.value;this.accounts=e,this.storage.storeObject(Er,e),(n=this.callback)==null||n.call(this,`accountsChanged`,e);break}}}async request(e){var t;if(this.accounts.length===0)switch(e.method){case`wallet_sendCalls`:return this.sendRequestToPopup(e);default:throw z.provider.unauthorized()}switch(e.method){case`eth_requestAccounts`:return(t=this.callback)==null||t.call(this,`connect`,{chainId:qn(this.chain.id)}),this.accounts;case`eth_accounts`:return this.accounts;case`eth_coinbase`:return this.accounts[0];case`net_version`:return this.chain.id;case`eth_chainId`:return qn(this.chain.id);case`wallet_getCapabilities`:return this.storage.loadObject(kr);case`wallet_switchEthereumChain`:return this.handleSwitchChainRequest(e);case`eth_ecRecover`:case`personal_sign`:case`wallet_sign`:case`personal_ecRecover`:case`eth_signTransaction`:case`eth_sendTransaction`:case`eth_signTypedData_v1`:case`eth_signTypedData_v3`:case`eth_signTypedData_v4`:case`eth_signTypedData`:case`wallet_addEthereumChain`:case`wallet_watchAsset`:case`wallet_sendCalls`:case`wallet_showCallsStatus`:case`wallet_grantPermissions`:return this.sendRequestToPopup(e);default:if(!this.chain.rpcUrl)throw z.rpc.internal(`No RPC URL set for chain`);return xr(e,this.chain.rpcUrl)}}async sendRequestToPopup(e){var t;await(t=this.communicator).waitForPopupLoaded?.call(t);let n=await this.sendEncryptedRequest(e),r=(await this.decryptResponseMessage(n)).result;if(`error`in r)throw r.error;return r.value}async cleanup(){this.storage.clear(),await this.keyManager.clear(),this.accounts=[],this.chain={id:this.metadata.appChainIds?.[0]??1}}async handleSwitchChainRequest(e){let t=e.params;if(!t||!t[0]?.chainId)throw z.rpc.invalidParams();let n=nr(t[0].chainId);if(this.updateChain(n))return null;let r=await this.sendRequestToPopup(e);return r===null&&this.updateChain(n),r}async sendEncryptedRequest(e){let t=await this.keyManager.getSharedSecret();if(!t)throw z.provider.unauthorized(`No valid session found, try requestAccounts before other methods`);let n=await pr({action:e,chainId:this.chain.id},t),r=await this.createRequestMessage({encrypted:n});return this.communicator.postRequestAndWaitForResponse(r)}async createRequestMessage(e){let t=await dr(`public`,await this.keyManager.getOwnPublicKey());return{id:crypto.randomUUID(),sender:t,content:e,timestamp:new Date}}async decryptResponseMessage(e){let t=e.content;if(`failure`in t)throw t.failure;let n=await this.keyManager.getSharedSecret();if(!n)throw z.provider.unauthorized(`Invalid session`);let r=await mr(t.encrypted,n),i=r.data?.chains;if(i){let e=Object.entries(i).map(([e,t])=>({id:Number(e),rpcUrl:t}));this.storage.storeObject(Or,e),this.updateChain(this.chain.id,e)}let a=r.data?.capabilities;return a&&this.storage.storeObject(kr,a),r}updateChain(e,t){var n;let r=(t??this.storage.loadObject(Or))?.find(t=>t.id===e);return r?(r!==this.chain&&(this.chain=r,this.storage.storeObject(Dr,r),(n=this.callback)==null||n.call(this,`chainChanged`,qn(r.id))),!0):!1}},jr=t((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.toBig=e.shrSL=e.shrSH=e.rotrSL=e.rotrSH=e.rotrBL=e.rotrBH=e.rotr32L=e.rotr32H=e.rotlSL=e.rotlSH=e.rotlBL=e.rotlBH=e.add5L=e.add5H=e.add4L=e.add4H=e.add3L=e.add3H=void 0,e.add=v,e.fromBig=r,e.split=i;var t=BigInt(2**32-1),n=BigInt(32);function r(e,r=!1){return r?{h:Number(e&t),l:Number(e>>n&t)}:{h:Number(e>>n&t)|0,l:Number(e&t)|0}}function i(e,t=!1){let n=e.length,i=new Uint32Array(n),a=new Uint32Array(n);for(let o=0;o<n;o++){let{h:n,l:s}=r(e[o],t);[i[o],a[o]]=[n,s]}return[i,a]}var a=(e,t)=>BigInt(e>>>0)<<n|BigInt(t>>>0);e.toBig=a;var o=(e,t,n)=>e>>>n;e.shrSH=o;var s=(e,t,n)=>e<<32-n|t>>>n;e.shrSL=s;var c=(e,t,n)=>e>>>n|t<<32-n;e.rotrSH=c;var l=(e,t,n)=>e<<32-n|t>>>n;e.rotrSL=l;var u=(e,t,n)=>e<<64-n|t>>>n-32;e.rotrBH=u;var d=(e,t,n)=>e>>>n-32|t<<64-n;e.rotrBL=d;var f=(e,t)=>t;e.rotr32H=f;var p=(e,t)=>e;e.rotr32L=p;var m=(e,t,n)=>e<<n|t>>>32-n;e.rotlSH=m;var h=(e,t,n)=>t<<n|e>>>32-n;e.rotlSL=h;var g=(e,t,n)=>t<<n-32|e>>>64-n;e.rotlBH=g;var _=(e,t,n)=>e<<n-32|t>>>64-n;e.rotlBL=_;function v(e,t,n,r){let i=(t>>>0)+(r>>>0);return{h:e+n+(i/2**32|0)|0,l:i|0}}var y=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0);e.add3L=y;var b=(e,t,n,r)=>t+n+r+(e/2**32|0)|0;e.add3H=b;var x=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0);e.add4L=x;var S=(e,t,n,r,i)=>t+n+r+i+(e/2**32|0)|0;e.add4H=S;var C=(e,t,n,r,i)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(i>>>0);e.add5L=C;var w=(e,t,n,r,i,a)=>t+n+r+i+a+(e/2**32|0)|0;e.add5H=w,e.default={fromBig:r,split:i,toBig:a,shrSH:o,shrSL:s,rotrSH:c,rotrSL:l,rotrBH:u,rotrBL:d,rotr32H:f,rotr32L:p,rotlSH:m,rotlSL:h,rotlBH:g,rotlBL:_,add:v,add3L:y,add3H:b,add4L:x,add4H:S,add5H:w,add5L:C}})),Mr=t((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.crypto=void 0,e.crypto=typeof globalThis==`object`&&`crypto`in globalThis?globalThis.crypto:void 0})),Nr=t((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.wrapXOFConstructorWithOpts=e.wrapConstructorWithOpts=e.wrapConstructor=e.Hash=e.nextTick=e.swap32IfBE=e.byteSwapIfBE=e.swap8IfBE=e.isLE=void 0,e.isBytes=n,e.anumber=r,e.abytes=i,e.ahash=a,e.aexists=o,e.aoutput=s,e.u8=c,e.u32=l,e.clean=u,e.createView=d,e.rotr=f,e.rotl=p,e.byteSwap=m,e.byteSwap32=h,e.bytesToHex=v,e.hexToBytes=x,e.asyncLoop=S,e.utf8ToBytes=C,e.bytesToUtf8=w,e.toBytes=T,e.kdfInputToBytes=E,e.concatBytes=D,e.checkOpts=O,e.createHasher=k,e.createOptHasher=A,e.createXOFer=j,e.randomBytes=M;var t=Mr();function n(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function r(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function i(e,...t){if(!n(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 a(e){if(typeof e!=`function`||typeof e.create!=`function`)throw Error(`Hash should be wrapped by utils.createHasher`);r(e.outputLen),r(e.blockLen)}function o(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 s(e,t){i(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function c(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function l(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function u(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function d(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function f(e,t){return e<<32-t|e>>>t}function p(e,t){return e<<t|e>>>32-t>>>0}e.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function m(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}e.swap8IfBE=e.isLE?e=>e:e=>m(e),e.byteSwapIfBE=e.swap8IfBE;function h(e){for(let t=0;t<e.length;t++)e[t]=m(e[t]);return e}e.swap32IfBE=e.isLE?e=>e:h;var g=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,_=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function v(e){if(i(e),g)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=_[e[n]];return t}var y={_0:48,_9:57,A:65,F:70,a:97,f:102};function b(e){if(e>=y._0&&e<=y._9)return e-y._0;if(e>=y.A&&e<=y.F)return e-(y.A-10);if(e>=y.a&&e<=y.f)return e-(y.a-10)}function x(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);if(g)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=b(e.charCodeAt(i)),a=b(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}e.nextTick=async()=>{};async function S(t,n,r){let i=Date.now();for(let a=0;a<t;a++){r(a);let t=Date.now()-i;t>=0&&t<n||(await(0,e.nextTick)(),i+=t)}}function C(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function w(e){return new TextDecoder().decode(e)}function T(e){return typeof e==`string`&&(e=C(e)),i(e),e}function E(e){return typeof e==`string`&&(e=C(e)),i(e),e}function D(...e){let t=0;for(let n=0;n<e.length;n++){let r=e[n];i(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}function O(e,t){if(t!==void 0&&{}.toString.call(t)!==`[object Object]`)throw Error(`options should be object or undefined`);return Object.assign(e,t)}e.Hash=class{};function k(e){let t=t=>e().update(T(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function A(e){let t=(t,n)=>e(n).update(T(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function j(e){let t=(t,n)=>e(n).update(T(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}e.wrapConstructor=k,e.wrapConstructorWithOpts=A,e.wrapXOFConstructorWithOpts=j;function M(e=32){if(t.crypto&&typeof t.crypto.getRandomValues==`function`)return t.crypto.getRandomValues(new Uint8Array(e));if(t.crypto&&typeof t.crypto.randomBytes==`function`)return Uint8Array.from(t.crypto.randomBytes(e));throw Error(`crypto.getRandomValues must be defined`)}})),Pr=t((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.shake256=e.shake128=e.keccak_512=e.keccak_384=e.keccak_256=e.keccak_224=e.sha3_512=e.sha3_384=e.sha3_256=e.sha3_224=e.Keccak=void 0,e.keccakP=_;var t=jr(),n=Nr(),r=BigInt(0),i=BigInt(1),a=BigInt(2),o=BigInt(7),s=BigInt(256),c=BigInt(113),l=[],u=[],d=[];for(let e=0,t=i,n=1,f=0;e<24;e++){[n,f]=[f,(2*n+3*f)%5],l.push(2*(5*f+n)),u.push((e+1)*(e+2)/2%64);let p=r;for(let e=0;e<7;e++)t=(t<<i^(t>>o)*c)%s,t&a&&(p^=i<<(i<<BigInt(e))-i);d.push(p)}var f=(0,t.split)(d,!0),p=f[0],m=f[1],h=(e,n,r)=>r>32?(0,t.rotlBH)(e,n,r):(0,t.rotlSH)(e,n,r),g=(e,n,r)=>r>32?(0,t.rotlBL)(e,n,r):(0,t.rotlSL)(e,n,r);function _(e,t=24){let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let n=(t+8)%10,i=(t+2)%10,a=r[i],o=r[i+1],s=h(a,o,1)^r[n],c=g(a,o,1)^r[n+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=u[n],a=h(t,i,r),o=g(t,i,r),s=l[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 n=0;n<10;n++)r[n]=e[t+n];for(let n=0;n<10;n++)e[t+n]^=~r[(n+2)%10]&r[(n+4)%10]}e[0]^=p[n],e[1]^=m[n]}(0,n.clean)(r)}var v=class e extends n.Hash{constructor(e,t,r,i=!1,a=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=r,this.enableXOF=i,this.rounds=a,(0,n.anumber)(r),!(0<e&&e<200))throw Error(`only keccak-f1600 function is supported`);this.state=new Uint8Array(200),this.state32=(0,n.u32)(this.state)}clone(){return this._cloneInto()}keccak(){(0,n.swap32IfBE)(this.state32),_(this.state32,this.rounds),(0,n.swap32IfBE)(this.state32),this.posOut=0,this.pos=0}update(e){(0,n.aexists)(this),e=(0,n.toBytes)(e),(0,n.abytes)(e);let{blockLen:t,state:r}=this,i=e.length;for(let n=0;n<i;){let a=Math.min(t-this.pos,i-n);for(let t=0;t<a;t++)r[this.pos++]^=e[n++];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){(0,n.aexists)(this,!1),(0,n.abytes)(e),this.finish();let t=this.state,{blockLen:r}=this;for(let n=0,i=e.length;n<i;){this.posOut>=r&&this.keccak();let a=Math.min(r-this.posOut,i-n);e.set(t.subarray(this.posOut,this.posOut+a),n),this.posOut+=a,n+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible for this instance`);return this.writeInto(e)}xof(e){return(0,n.anumber)(e),this.xofInto(new Uint8Array(e))}digestInto(e){if((0,n.aoutput)(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,(0,n.clean)(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}};e.Keccak=v;var y=(e,t,r)=>(0,n.createHasher)(()=>new v(t,e,r));e.sha3_224=y(6,144,28),e.sha3_256=y(6,136,32),e.sha3_384=y(6,104,48),e.sha3_512=y(6,72,64),e.keccak_224=y(1,144,28),e.keccak_256=y(1,136,32),e.keccak_384=y(1,104,48),e.keccak_512=y(1,72,64);var b=(e,t,r)=>(0,n.createXOFer)((n={})=>new v(t,e,n.dkLen===void 0?r:n.dkLen,!0));e.shake128=b(31,168,16),e.shake256=b(31,136,32)})),Fr=t(((e,t)=>{var{keccak_256:n}=Pr();function r(e){return Buffer.allocUnsafe(e).fill(0)}function i(e){return e.toString(2).length}function a(e,t){let n=e.toString(16);n.length%2!=0&&(n=`0`+n);let r=n.match(/.{1,2}/g).map(e=>parseInt(e,16));for(;r.length<t;)r.unshift(0);return Buffer.from(r)}function o(e,t){let n=e<0n,r;if(n){let n=(1n<<BigInt(t))-1n;r=(~e&n)+1n}else r=e;return r&=(1n<<BigInt(t))-1n,r}function s(e,t,n){let i=r(t);return e=l(e),n?e.length<t?(e.copy(i),i):e.slice(0,t):e.length<t?(e.copy(i,t-e.length),i):e.slice(-t)}function c(e,t){return s(e,t,!0)}function l(e){if(!Buffer.isBuffer(e)){if(Array.isArray(e))e=Buffer.from(e);else if(typeof e==`string`)e=p(e)?Buffer.from(f(m(e)),`hex`):Buffer.from(e);else if(typeof e==`number`)e=intToBuffer(e);else if(e==null)e=Buffer.allocUnsafe(0);else if(typeof e==`bigint`)e=a(e);else if(e.toArray)e=Buffer.from(e.toArray());else throw Error(`invalid type`)}return e}function u(e){return e=l(e),`0x`+e.toString(`hex`)}function d(e,t){if(e=l(e),t||=256,t!==256)throw Error(`unsupported`);return Buffer.from(n(new Uint8Array(e)))}function f(e){return e.length%2?`0`+e:e}function p(e){return typeof e==`string`&&e.match(/^0x[0-9A-Fa-f]*$/)}function m(e){return typeof e==`string`&&e.startsWith(`0x`)?e.slice(2):e}t.exports={zeros:r,setLength:s,setLengthRight:c,isHexString:p,stripHexPrefix:m,toBuffer:l,bufferToHex:u,keccak:d,bitLengthFromBigInt:i,bufferBEFromBigInt:a,twosFromBigInt:o}})),Ir=t(((e,t)=>{var n=Fr();function r(e){return e.startsWith(`int[`)?`int256`+e.slice(3):e===`int`?`int256`:e.startsWith(`uint[`)?`uint256`+e.slice(4):e===`uint`?`uint256`:e.startsWith(`fixed[`)?`fixed128x128`+e.slice(5):e===`fixed`?`fixed128x128`:e.startsWith(`ufixed[`)?`ufixed128x128`+e.slice(6):e===`ufixed`?`ufixed128x128`:e}function i(e){return Number.parseInt(/^\D+(\d+)$/.exec(e)[1],10)}function a(e){var t=/^\D+(\d+)x(\d+)$/.exec(e);return[Number.parseInt(t[1],10),Number.parseInt(t[2],10)]}function o(e){var t=e.match(/(.*)\[(.*?)\]$/);return t?t[2]===``?`dynamic`:Number.parseInt(t[2],10):null}function s(e){var t=typeof e;if(t===`string`||t===`number`)return BigInt(e);if(t===`bigint`)return e;throw Error(`Argument is not a number`)}function c(e,t){var r,l,d,f;if(e===`address`)return c(`uint160`,s(t));if(e===`bool`)return c(`uint8`,+!!t);if(e===`string`)return c(`bytes`,new Buffer(t,`utf8`));if(u(e)){if(t.length===void 0)throw Error(`Not an array?`);if(r=o(e),r!==`dynamic`&&r!==0&&t.length>r)throw Error(`Elements exceed array size: `+r);for(f in d=[],e=e.slice(0,e.lastIndexOf(`[`)),typeof t==`string`&&(t=JSON.parse(t)),t)d.push(c(e,t[f]));if(r===`dynamic`){var p=c(`uint256`,t.length);d.unshift(p)}return Buffer.concat(d)}if(e===`bytes`)return t=new Buffer(t),d=Buffer.concat([c(`uint256`,t.length),t]),t.length%32!=0&&(d=Buffer.concat([d,n.zeros(32-t.length%32)])),d;if(e.startsWith(`bytes`)){if(r=i(e),r<1||r>32)throw Error(`Invalid bytes<N> width: `+r);return n.setLengthRight(t,32)}if(e.startsWith(`uint`)){if(r=i(e),r%8||r<8||r>256)throw Error(`Invalid uint<N> width: `+r);l=s(t);let a=n.bitLengthFromBigInt(l);if(a>r)throw Error(`Supplied uint exceeds width: `+r+` vs `+a);if(l<0)throw Error(`Supplied uint is negative`);return n.bufferBEFromBigInt(l,32)}if(e.startsWith(`int`)){if(r=i(e),r%8||r<8||r>256)throw Error(`Invalid int<N> width: `+r);l=s(t);let a=n.bitLengthFromBigInt(l);if(a>r)throw Error(`Supplied int exceeds width: `+r+` vs `+a);let o=n.twosFromBigInt(l,256);return n.bufferBEFromBigInt(o,32)}if(e.startsWith(`ufixed`)){if(r=a(e),l=s(t),l<0)throw Error(`Supplied ufixed is negative`);return c(`uint256`,l*BigInt(2)**BigInt(r[1]))}if(e.startsWith(`fixed`))return r=a(e),c(`int256`,s(t)*BigInt(2)**BigInt(r[1]));throw Error(`Unsupported or invalid type: `+e)}function l(e){return e===`string`||e===`bytes`||o(e)===`dynamic`}function u(e){return e.lastIndexOf(`]`)===e.length-1}function d(e,t){var n=[],i=[],a=32*e.length;for(var o in e){var s=r(e[o]),u=t[o],d=c(s,u);l(s)?(n.push(c(`uint256`,a)),i.push(d),a+=d.length):n.push(d)}return Buffer.concat(n.concat(i))}function f(e,t){if(e.length!==t.length)throw Error(`Number of types are not matching the values`);for(var a,o,c=[],l=0;l<e.length;l++){var u=r(e[l]),d=t[l];if(u===`bytes`)c.push(d);else if(u===`string`)c.push(new Buffer(d,`utf8`));else if(u===`bool`)c.push(new Buffer(d?`01`:`00`,`hex`));else if(u===`address`)c.push(n.setLength(d,20));else if(u.startsWith(`bytes`)){if(a=i(u),a<1||a>32)throw Error(`Invalid bytes<N> width: `+a);c.push(n.setLengthRight(d,a))}else if(u.startsWith(`uint`)){if(a=i(u),a%8||a<8||a>256)throw Error(`Invalid uint<N> width: `+a);o=s(d);let e=n.bitLengthFromBigInt(o);if(e>a)throw Error(`Supplied uint exceeds width: `+a+` vs `+e);c.push(n.bufferBEFromBigInt(o,a/8))}else if(u.startsWith(`int`)){if(a=i(u),a%8||a<8||a>256)throw Error(`Invalid int<N> width: `+a);o=s(d);let e=n.bitLengthFromBigInt(o);if(e>a)throw Error(`Supplied int exceeds width: `+a+` vs `+e);let t=n.twosFromBigInt(o,a);c.push(n.bufferBEFromBigInt(t,a/8))}else throw Error(`Unsupported or invalid type: `+u)}return Buffer.concat(c)}function p(e,t){return n.keccak(f(e,t))}t.exports={rawEncode:d,solidityPack:f,soliditySHA3:p}})),Lr=e(t(((e,t)=>{var n=Fr(),r=Ir(),i={type:`object`,properties:{types:{type:`object`,additionalProperties:{type:`array`,items:{type:`object`,properties:{name:{type:`string`},type:{type:`string`}},required:[`name`,`type`]}}},primaryType:{type:`string`},domain:{type:`object`},message:{type:`object`}},required:[`types`,`primaryType`,`domain`,`message`]},a={encodeData(e,t,i,a=!0){let o=[`bytes32`],s=[this.hashType(e,i)];if(a){let c=(e,t,o)=>{if(i[t]!==void 0)return[`bytes32`,o==null?`0x0000000000000000000000000000000000000000000000000000000000000000`:n.keccak(this.encodeData(t,o,i,a))];if(o===void 0)throw Error(`missing value for field ${e} of type ${t}`);if(t===`bytes`)return[`bytes32`,n.keccak(o)];if(t===`string`)return typeof o==`string`&&(o=Buffer.from(o,`utf8`)),[`bytes32`,n.keccak(o)];if(t.lastIndexOf(`]`)===t.length-1){let i=t.slice(0,t.lastIndexOf(`[`)),a=o.map(t=>c(e,i,t));return[`bytes32`,n.keccak(r.rawEncode(a.map(([e])=>e),a.map(([,e])=>e)))]}return[t,o]};for(let n of i[e]){let[e,r]=c(n.name,n.type,t[n.name]);o.push(e),s.push(r)}}else for(let r of i[e]){let e=t[r.name];if(e!==void 0){if(r.type===`bytes`)o.push(`bytes32`),e=n.keccak(e),s.push(e);else if(r.type===`string`)o.push(`bytes32`),typeof e==`string`&&(e=Buffer.from(e,`utf8`)),e=n.keccak(e),s.push(e);else if(i[r.type]!==void 0)o.push(`bytes32`),e=n.keccak(this.encodeData(r.type,e,i,a)),s.push(e);else if(r.type.lastIndexOf(`]`)===r.type.length-1)throw Error(`Arrays currently unimplemented in encodeData`);else o.push(r.type),s.push(e)}}return r.rawEncode(o,s)},encodeType(e,t){let n=``,r=this.findTypeDependencies(e,t).filter(t=>t!==e);r=[e].concat(r.sort());for(let e of r){if(!t[e])throw Error(`No type definition specified: `+e);n+=e+`(`+t[e].map(({name:e,type:t})=>t+` `+e).join(`,`)+`)`}return n},findTypeDependencies(e,t,n=[]){if(e=e.match(/^\w*/)[0],n.includes(e)||t[e]===void 0)return n;n.push(e);for(let r of t[e])for(let e of this.findTypeDependencies(r.type,t,n))!n.includes(e)&&n.push(e);return n},hashStruct(e,t,r,i=!0){return n.keccak(this.encodeData(e,t,r,i))},hashType(e,t){return n.keccak(this.encodeType(e,t))},sanitizeData(e){let t={};for(let n in i.properties)e[n]&&(t[n]=e[n]);return t.types&&=Object.assign({EIP712Domain:[]},t.types),t},hash(e,t=!0){let r=this.sanitizeData(e),i=[Buffer.from(`1901`,`hex`)];return i.push(this.hashStruct(`EIP712Domain`,r.domain,r.types,t)),r.primaryType!==`EIP712Domain`&&i.push(this.hashStruct(r.primaryType,r.message,r.types,t)),n.keccak(Buffer.concat(i))}};t.exports={TYPED_MESSAGE_SCHEMA:i,TypedDataUtils:a,hashForSignTypedDataLegacy:function(e){return o(e.data)},hashForSignTypedData_v3:function(e){return a.hash(e.data,!1)},hashForSignTypedData_v4:function(e){return a.hash(e.data)}};function o(e){let t=Error(`Expect argument to be non-empty array`);if(typeof e!=`object`||!e.length)throw t;let i=e.map(function(e){return e.type===`bytes`?n.toBuffer(e.value):e.value}),a=e.map(function(e){return e.type}),o=e.map(function(e){if(!e.name)throw t;return e.type+` `+e.name});return r.soliditySHA3([`bytes32`,`bytes32`],[r.soliditySHA3(Array(e.length).fill(`string`),o),r.soliditySHA3(a,i)])}}))(),1),Rr=`walletUsername`,zr=`Addresses`,Br=`AppVersion`;function Vr(e){return e.errorMessage!==void 0}var Hr=class{constructor(e){this.secret=e}async encrypt(e){let t=this.secret;if(t.length!==64)throw Error(`secret must be 256 bits`);let n=crypto.getRandomValues(new Uint8Array(12)),r=await crypto.subtle.importKey(`raw`,Un(t),{name:`aes-gcm`},!1,[`encrypt`,`decrypt`]),i=new TextEncoder,a=await window.crypto.subtle.encrypt({name:`AES-GCM`,iv:n},r,i.encode(e)),o=a.slice(a.byteLength-16),s=a.slice(0,a.byteLength-16),c=new Uint8Array(o),l=new Uint8Array(s);return Hn(new Uint8Array([...n,...c,...l]))}async decrypt(e){let t=this.secret;if(t.length!==64)throw Error(`secret must be 256 bits`);return new Promise((n,r)=>{(async function(){let i=await crypto.subtle.importKey(`raw`,Un(t),{name:`aes-gcm`},!1,[`encrypt`,`decrypt`]),a=Un(e),o=a.slice(0,12),s=a.slice(12,28),c=a.slice(28),l=new Uint8Array([...c,...s]),u={name:`AES-GCM`,iv:new Uint8Array(o)};try{let e=await window.crypto.subtle.decrypt(u,i,l);n(new TextDecoder().decode(e))}catch(e){r(e)}})()})}},Ur=class{constructor(e,t,n){this.linkAPIUrl=e,this.sessionId=t;let r=`${t}:${n}`;this.auth=`Basic ${btoa(r)}`}async markUnseenEventsAsSeen(e){return Promise.all(e.map(e=>fetch(`${this.linkAPIUrl}/events/${e.eventId}/seen`,{method:`POST`,headers:{Authorization:this.auth}}))).catch(e=>console.error(`Unabled to mark event as failed:`,e))}async fetchUnseenEvents(){let e=await fetch(`${this.linkAPIUrl}/events?unseen=true`,{headers:{Authorization:this.auth}});if(e.ok){let{events:t,error:n}=await e.json();if(n)throw Error(`Check unseen events failed: ${n}`);let r=t?.filter(e=>e.event===`Web3Response`).map(e=>({type:`Event`,sessionId:this.sessionId,eventId:e.id,event:e.event,data:e.data}))??[];return this.markUnseenEventsAsSeen(r),r}throw Error(`Check unseen events failed: ${e.status}`)}},Wr;(function(e){e[e.DISCONNECTED=0]=`DISCONNECTED`,e[e.CONNECTING=1]=`CONNECTING`,e[e.CONNECTED=2]=`CONNECTED`})(Wr||={});var Gr=class{setConnectionStateListener(e){this.connectionStateListener=e}setIncomingDataListener(e){this.incomingDataListener=e}constructor(e,t=WebSocket){this.WebSocketClass=t,this.webSocket=null,this.pendingData=[],this.url=e.replace(/^http/,`ws`)}async connect(){if(this.webSocket)throw Error(`webSocket object is not null`);return new Promise((e,t)=>{var n;let r;try{this.webSocket=r=new this.WebSocketClass(this.url)}catch(e){t(e);return}(n=this.connectionStateListener)==null||n.call(this,Wr.CONNECTING),r.onclose=e=>{var n;this.clearWebSocket(),t(Error(`websocket error ${e.code}: ${e.reason}`)),(n=this.connectionStateListener)==null||n.call(this,Wr.DISCONNECTED)},r.onopen=t=>{var n;e(),(n=this.connectionStateListener)==null||n.call(this,Wr.CONNECTED),this.pendingData.length>0&&([...this.pendingData].forEach(e=>this.sendData(e)),this.pendingData=[])},r.onmessage=e=>{var t,n;if(e.data===`h`)(t=this.incomingDataListener)==null||t.call(this,{type:`Heartbeat`});else try{let t=JSON.parse(e.data);(n=this.incomingDataListener)==null||n.call(this,t)}catch{}}})}disconnect(){var e;let{webSocket:t}=this;if(t){this.clearWebSocket(),(e=this.connectionStateListener)==null||e.call(this,Wr.DISCONNECTED),this.connectionStateListener=void 0,this.incomingDataListener=void 0;try{t.close()}catch{}}}sendData(e){let{webSocket:t}=this;if(!t){this.pendingData.push(e),this.connect();return}t.send(e)}clearWebSocket(){let{webSocket:e}=this;e&&(this.webSocket=null,e.onclose=null,e.onerror=null,e.onmessage=null,e.onopen=null)}},Kr=1e4,qr=6e4,Jr=class{constructor({session:e,linkAPIUrl:t,listener:n}){this.destroyed=!1,this.lastHeartbeatResponse=0,this.nextReqId=Rn(1),this._connected=!1,this._linked=!1,this.shouldFetchUnseenEventsOnConnect=!1,this.requestResolutions=new Map,this.handleSessionMetadataUpdated=e=>{e&&new Map([[`__destroyed`,this.handleDestroyed],[`EthereumAddress`,this.handleAccountUpdated],[`WalletUsername`,this.handleWalletUsernameUpdated],[`AppVersion`,this.handleAppVersionUpdated],[`ChainId`,t=>e.JsonRpcUrl&&this.handleChainUpdated(t,e.JsonRpcUrl)]]).forEach((t,n)=>{let r=e[n];r!==void 0&&t(r)})},this.handleDestroyed=e=>{var t;e===`1`&&((t=this.listener)==null||t.resetAndReload())},this.handleAccountUpdated=async e=>{var t;let n=await this.cipher.decrypt(e);(t=this.listener)==null||t.accountUpdated(n)},this.handleMetadataUpdated=async(e,t)=>{var n;let r=await this.cipher.decrypt(t);(n=this.listener)==null||n.metadataUpdated(e,r)},this.handleWalletUsernameUpdated=async e=>{this.handleMetadataUpdated(Rr,e)},this.handleAppVersionUpdated=async e=>{this.handleMetadataUpdated(Br,e)},this.handleChainUpdated=async(e,t)=>{var n;let r=await this.cipher.decrypt(e),i=await this.cipher.decrypt(t);(n=this.listener)==null||n.chainUpdated(r,i)},this.session=e,this.cipher=new Hr(e.secret),this.listener=n;let r=new Gr(`${t}/rpc`,WebSocket);r.setConnectionStateListener(async e=>{let t=!1;switch(e){case Wr.DISCONNECTED:if(!this.destroyed){let e=async()=>{await new Promise(e=>setTimeout(e,5e3)),this.destroyed||r.connect().catch(()=>{e()})};e()}break;case Wr.CONNECTED:t=await this.handleConnected(),this.updateLastHeartbeat(),setInterval(()=>{this.heartbeat()},Kr),this.shouldFetchUnseenEventsOnConnect&&this.fetchUnseenEventsAPI();break;case Wr.CONNECTING:}this.connected!==t&&(this.connected=t)}),r.setIncomingDataListener(e=>{var t;switch(e.type){case`Heartbeat`:this.updateLastHeartbeat();return;case`IsLinkedOK`:case`Linked`:{let t=e.type===`IsLinkedOK`?e.linked:void 0;this.linked=t||e.onlineGuests>0;break}case`GetSessionConfigOK`:case`SessionConfigUpdated`:this.handleSessionMetadataUpdated(e.metadata);break;case`Event`:this.handleIncomingEvent(e)}e.id!==void 0&&((t=this.requestResolutions.get(e.id))==null||t(e))}),this.ws=r,this.http=new Ur(t,e.id,e.key)}connect(){if(this.destroyed)throw Error(`instance is destroyed`);this.ws.connect()}async destroy(){this.destroyed||(await this.makeRequest({type:`SetSessionConfig`,id:Rn(this.nextReqId++),sessionId:this.session.id,metadata:{__destroyed:`1`}},{timeout:1e3}),this.destroyed=!0,this.ws.disconnect(),this.listener=void 0)}get connected(){return this._connected}set connected(e){this._connected=e}get linked(){return this._linked}set linked(e){var t,n;this._linked=e,e&&((t=this.onceLinked)==null||t.call(this)),(n=this.listener)==null||n.linkedUpdated(e)}setOnceLinked(e){return new Promise(t=>{this.linked?e().then(t):this.onceLinked=()=>{e().then(t),this.onceLinked=void 0}})}async handleIncomingEvent(e){var t;if(e.type!==`Event`||e.event!==`Web3Response`)return;let n=await this.cipher.decrypt(e.data),r=JSON.parse(n);if(r.type!==`WEB3_RESPONSE`)return;let{id:i,response:a}=r;(t=this.listener)==null||t.handleWeb3ResponseMessage(i,a)}async checkUnseenEvents(){if(!this.connected){this.shouldFetchUnseenEventsOnConnect=!0;return}await new Promise(e=>setTimeout(e,250));try{await this.fetchUnseenEventsAPI()}catch(e){console.error(`Unable to check for unseen events`,e)}}async fetchUnseenEventsAPI(){this.shouldFetchUnseenEventsOnConnect=!1,(await this.http.fetchUnseenEvents()).forEach(e=>this.handleIncomingEvent(e))}async publishEvent(e,t,n=!1){let r=await this.cipher.encrypt(JSON.stringify(Object.assign(Object.assign({},t),{origin:location.origin,location:location.href,relaySource:`coinbaseWalletExtension`in window&&window.coinbaseWalletExtension?`injected_sdk`:`sdk`}))),i={type:`PublishEvent`,id:Rn(this.nextReqId++),sessionId:this.session.id,event:e,data:r,callWebhook:n};return this.setOnceLinked(async()=>{let e=await this.makeRequest(i);if(e.type===`Fail`)throw Error(e.error||`failed to publish event`);return e.eventId})}sendData(e){this.ws.sendData(JSON.stringify(e))}updateLastHeartbeat(){this.lastHeartbeatResponse=Date.now()}heartbeat(){if(Date.now()-this.lastHeartbeatResponse>Kr*2){this.ws.disconnect();return}try{this.ws.sendData(`h`)}catch{}}async makeRequest(e,t={timeout:qr}){let n=e.id;this.sendData(e);let r;return Promise.race([new Promise((e,i)=>{r=window.setTimeout(()=>{i(Error(`request ${n} timed out`))},t.timeout)}),new Promise(e=>{this.requestResolutions.set(n,t=>{clearTimeout(r),e(t),this.requestResolutions.delete(n)})})])}async handleConnected(){return(await this.makeRequest({type:`HostSession`,id:Rn(this.nextReqId++),sessionId:this.session.id,sessionKey:this.session.key})).type!==`Fail`&&(this.sendData({type:`IsLinked`,id:Rn(this.nextReqId++),sessionId:this.session.id}),this.sendData({type:`GetSessionConfig`,id:Rn(this.nextReqId++),sessionId:this.session.id}),!0)}},Yr=class{constructor(){this._nextRequestId=0,this.callbacks=new Map}makeRequestId(){this._nextRequestId=(this._nextRequestId+1)%2147483647;let e=this._nextRequestId,t=Xn(e.toString(16));return this.callbacks.get(t)&&this.callbacks.delete(t),e}},Xr=`session:id`,Zr=`session:secret`,Qr=`session:linked`,$r=class e{constructor(e,t,n,r=!1){this.storage=e,this.id=t,this.secret=n,this.key=ne(M(`${t}, ${n} WalletLink`)),this._linked=!!r}static create(t){let n=Vn(16),r=Vn(32);return new e(t,n,r).save()}static load(t){let n=t.getItem(Xr),r=t.getItem(Qr),i=t.getItem(Zr);return n&&i?new e(t,n,i,r===`1`):null}get linked(){return this._linked}set linked(e){this._linked=e,this.persistLinked()}save(){return this.storage.setItem(Xr,this.id),this.storage.setItem(Zr,this.secret),this.persistLinked(),this}persistLinked(){this.storage.setItem(Qr,this._linked?`1`:`0`)}};function ei(){try{return window.frameElement!==null}catch{return!1}}function ti(){try{return ei()&&window.top?window.top.location:window.location}catch{return window.location}}function ni(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test((window==null?void 0:window.navigator)?.userAgent)}function ri(){return(window==null?void 0:window.matchMedia)?.call(window,`(prefers-color-scheme: dark)`).matches??!1}var ii=`@namespace svg "http://www.w3.org/2000/svg";.-cbwsdk-css-reset,.-cbwsdk-css-reset *{animation:none;animation-delay:0;animation-direction:normal;animation-duration:0;animation-fill-mode:none;animation-iteration-count:1;animation-name:none;animation-play-state:running;animation-timing-function:ease;backface-visibility:visible;background:0;background-attachment:scroll;background-clip:border-box;background-color:rgba(0,0,0,0);background-image:none;background-origin:padding-box;background-position:0 0;background-position-x:0;background-position-y:0;background-repeat:repeat;background-size:auto auto;border:0;border-style:none;border-width:medium;border-color:inherit;border-bottom:0;border-bottom-color:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-style:none;border-bottom-width:medium;border-collapse:separate;border-image:none;border-left:0;border-left-color:inherit;border-left-style:none;border-left-width:medium;border-radius:0;border-right:0;border-right-color:inherit;border-right-style:none;border-right-width:medium;border-spacing:0;border-top:0;border-top-color:inherit;border-top-left-radius:0;border-top-right-radius:0;border-top-style:none;border-top-width:medium;box-shadow:none;box-sizing:border-box;caption-side:top;clear:none;clip:auto;color:inherit;columns:auto;column-count:auto;column-fill:balance;column-gap:normal;column-rule:medium none currentColor;column-rule-color:currentColor;column-rule-style:none;column-rule-width:none;column-span:1;column-width:auto;counter-increment:none;counter-reset:none;direction:ltr;empty-cells:show;float:none;font:normal;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;height:auto;hyphens:none;letter-spacing:normal;line-height:normal;list-style:none;list-style-image:none;list-style-position:outside;list-style-type:disc;margin:0;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;opacity:1;orphans:0;outline:0;outline-color:invert;outline-style:none;outline-width:medium;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;perspective:none;perspective-origin:50% 50%;pointer-events:auto;position:static;quotes:"\\201C" "\\201D" "\\2018" "\\2019";tab-size:8;table-layout:auto;text-align:inherit;text-align-last:auto;text-decoration:none;text-decoration-color:inherit;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-shadow:none;text-transform:none;transform:none;transform-style:flat;transition:none;transition-delay:0s;transition-duration:0s;transition-property:none;transition-timing-function:ease;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:0;word-spacing:normal;z-index:auto}.-cbwsdk-css-reset strong{font-weight:bold}.-cbwsdk-css-reset *{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;line-height:1}.-cbwsdk-css-reset [class*=container]{margin:0;padding:0}.-cbwsdk-css-reset style{display:none}`;function ai(){let e=document.createElement(`style`);e.type=`text/css`,e.appendChild(document.createTextNode(ii)),document.documentElement.appendChild(e)}var oi=`.-cbwsdk-css-reset .-gear-container{margin-left:16px !important;margin-right:9px !important;display:flex;align-items:center;justify-content:center;width:24px;height:24px;transition:opacity .25s}.-cbwsdk-css-reset .-gear-container *{user-select:none}.-cbwsdk-css-reset .-gear-container svg{opacity:0;position:absolute}.-cbwsdk-css-reset .-gear-icon{height:12px;width:12px;z-index:10000}.-cbwsdk-css-reset .-cbwsdk-snackbar{align-items:flex-end;display:flex;flex-direction:column;position:fixed;right:0;top:0;z-index:2147483647}.-cbwsdk-css-reset .-cbwsdk-snackbar *{user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance{display:flex;flex-direction:column;margin:8px 16px 0 16px;overflow:visible;text-align:left;transform:translateX(0);transition:opacity .25s,transform .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header:hover .-gear-container svg{opacity:1}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header{display:flex;align-items:center;background:#fff;overflow:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-cblogo{margin:8px 8px 8px 8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-message{color:#000;font-size:13px;line-height:1.5;user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu{background:#fff;transition:opacity .25s ease-in-out,transform .25s linear,visibility 0s;visibility:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;opacity:0;flex-direction:column;padding-left:8px;padding-right:8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:last-child{margin-bottom:8px !important}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover{background:#f5f7f8;border-radius:6px;transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover span{color:#050f19;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover svg path{fill:#000;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item{visibility:inherit;height:35px;margin-top:8px;margin-bottom:0;display:flex;flex-direction:row;align-items:center;padding:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item *{visibility:inherit;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover{background:rgba(223,95,103,.2);transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover svg path{fill:#df5f67;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover span{color:#df5f67;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-info{color:#aaa;font-size:13px;margin:0 8px 0 32px;position:absolute}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-hidden{opacity:0;text-align:left;transform:translateX(25%);transition:opacity .5s linear}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-expanded .-cbwsdk-snackbar-instance-menu{opacity:1;display:flex;transform:translateY(8px);visibility:visible}`,si=`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNDkyIDEwLjQxOWE4LjkzIDguOTMgMCAwMTguOTMtOC45M2gxMS4xNjNhOC45MyA4LjkzIDAgMDE4LjkzIDguOTN2MTEuMTYzYTguOTMgOC45MyAwIDAxLTguOTMgOC45M0gxMC40MjJhOC45MyA4LjkzIDAgMDEtOC45My04LjkzVjEwLjQxOXoiIGZpbGw9IiMxNjUyRjAiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjQxOSAwSDIxLjU4QzI3LjMzNSAwIDMyIDQuNjY1IDMyIDEwLjQxOVYyMS41OEMzMiAyNy4zMzUgMjcuMzM1IDMyIDIxLjU4MSAzMkgxMC40MkM0LjY2NSAzMiAwIDI3LjMzNSAwIDIxLjU4MVYxMC40MkMwIDQuNjY1IDQuNjY1IDAgMTAuNDE5IDB6bTAgMS40ODhhOC45MyA4LjkzIDAgMDAtOC45MyA4LjkzdjExLjE2M2E4LjkzIDguOTMgMCAwMDguOTMgOC45M0gyMS41OGE4LjkzIDguOTMgMCAwMDguOTMtOC45M1YxMC40MmE4LjkzIDguOTMgMCAwMC04LjkzLTguOTNIMTAuNDJ6IiBmaWxsPSIjZmZmIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS45OTggMjYuMDQ5Yy01LjU0OSAwLTEwLjA0Ny00LjQ5OC0xMC4wNDctMTAuMDQ3IDAtNS41NDggNC40OTgtMTAuMDQ2IDEwLjA0Ny0xMC4wNDYgNS41NDggMCAxMC4wNDYgNC40OTggMTAuMDQ2IDEwLjA0NiAwIDUuNTQ5LTQuNDk4IDEwLjA0Ny0xMC4wNDYgMTAuMDQ3eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMi43NjIgMTQuMjU0YzAtLjgyMi42NjctMS40ODkgMS40ODktMS40ODloMy40OTdjLjgyMiAwIDEuNDg4LjY2NiAxLjQ4OCAxLjQ4OXYzLjQ5N2MwIC44MjItLjY2NiAxLjQ4OC0xLjQ4OCAxLjQ4OGgtMy40OTdhMS40ODggMS40ODggMCAwMS0xLjQ4OS0xLjQ4OHYtMy40OTh6IiBmaWxsPSIjMTY1MkYwIi8+PC9zdmc+`,ci=`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDYuNzV2LTEuNWwtMS43Mi0uNTdjLS4wOC0uMjctLjE5LS41Mi0uMzItLjc3bC44MS0xLjYyLTEuMDYtMS4wNi0xLjYyLjgxYy0uMjQtLjEzLS41LS4yNC0uNzctLjMyTDYuNzUgMGgtMS41bC0uNTcgMS43MmMtLjI3LjA4LS41My4xOS0uNzcuMzJsLTEuNjItLjgxLTEuMDYgMS4wNi44MSAxLjYyYy0uMTMuMjQtLjI0LjUtLjMyLjc3TDAgNS4yNXYxLjVsMS43Mi41N2MuMDguMjcuMTkuNTMuMzIuNzdsLS44MSAxLjYyIDEuMDYgMS4wNiAxLjYyLS44MWMuMjQuMTMuNS4yMy43Ny4zMkw1LjI1IDEyaDEuNWwuNTctMS43MmMuMjctLjA4LjUyLS4xOS43Ny0uMzJsMS42Mi44MSAxLjA2LTEuMDYtLjgxLTEuNjJjLjEzLS4yNC4yMy0uNS4zMi0uNzdMMTIgNi43NXpNNiA4LjVhMi41IDIuNSAwIDAxMC01IDIuNSAyLjUgMCAwMTAgNXoiIGZpbGw9IiMwNTBGMTkiLz48L3N2Zz4=`,li=class{constructor(){this.items=new Map,this.nextItemKey=0,this.root=null,this.darkMode=ri()}attach(e){this.root=document.createElement(`div`),this.root.className=`-cbwsdk-snackbar-root`,e.appendChild(this.root),this.render()}presentItem(e){let t=this.nextItemKey++;return this.items.set(t,e),this.render(),()=>{this.items.delete(t),this.render()}}clear(){this.items.clear(),this.render()}render(){this.root&&je(R(`div`,null,R(ui,{darkMode:this.darkMode},Array.from(this.items.entries()).map(([e,t])=>R(di,Object.assign({},t,{key:e}))))),this.root)}},ui=e=>R(`div`,{class:Pe(`-cbwsdk-snackbar-container`)},R(`style`,null,oi),R(`div`,{class:`-cbwsdk-snackbar`},e.children)),di=({autoExpand:e,message:t,menuItems:n})=>{let[r,i]=Me(!0),[a,o]=Me(e??!1);return Ne(()=>{let e=[window.setTimeout(()=>{i(!1)},1),window.setTimeout(()=>{o(!0)},1e4)];return()=>{e.forEach(window.clearTimeout)}}),R(`div`,{class:Pe(`-cbwsdk-snackbar-instance`,r&&`-cbwsdk-snackbar-instance-hidden`,a&&`-cbwsdk-snackbar-instance-expanded`)},R(`div`,{class:`-cbwsdk-snackbar-instance-header`,onClick:()=>{o(!a)}},R(`img`,{src:si,class:`-cbwsdk-snackbar-instance-header-cblogo`}),` `,R(`div`,{class:`-cbwsdk-snackbar-instance-header-message`},t),R(`div`,{class:`-gear-container`},!a&&R(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},R(`circle`,{cx:`12`,cy:`12`,r:`12`,fill:`#F5F7F8`})),R(`img`,{src:ci,class:`-gear-icon`,title:`Expand`}))),n&&n.length>0&&R(`div`,{class:`-cbwsdk-snackbar-instance-menu`},n.map((e,t)=>R(`div`,{class:Pe(`-cbwsdk-snackbar-instance-menu-item`,e.isRed&&`-cbwsdk-snackbar-instance-menu-item-is-red`),onClick:e.onClick,key:t},R(`svg`,{width:e.svgWidth,height:e.svgHeight,viewBox:`0 0 10 11`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},R(`path`,{"fill-rule":e.defaultFillRule,"clip-rule":e.defaultClipRule,d:e.path,fill:`#AAAAAA`})),R(`span`,{class:Pe(`-cbwsdk-snackbar-instance-menu-item-info`,e.isRed&&`-cbwsdk-snackbar-instance-menu-item-info-is-red`)},e.info)))))},fi=`M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z`,pi=class{constructor(){this.attached=!1,this.snackbar=new li}attach(){if(this.attached)throw Error(`Coinbase Wallet SDK UI is already attached`);let e=document.documentElement,t=document.createElement(`div`);t.className=`-cbwsdk-css-reset`,e.appendChild(t),this.snackbar.attach(t),this.attached=!0,ai()}showConnecting(e){let t;return t=e.isUnlinkedErrorState?{autoExpand:!0,message:`Connection lost`,menuItems:[{isRed:!1,info:`Reset connection`,svgWidth:`10`,svgHeight:`11`,path:`M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z`,defaultFillRule:`evenodd`,defaultClipRule:`evenodd`,onClick:e.onResetConnection}]}:{message:`Confirm on phone`,menuItems:[{isRed:!0,info:`Cancel transaction`,svgWidth:`11`,svgHeight:`11`,path:`M10.3711 1.52346L9.21775 0.370117L5.37109 4.21022L1.52444 0.370117L0.371094 1.52346L4.2112 5.37012L0.371094 9.21677L1.52444 10.3701L5.37109 6.53001L9.21775 10.3701L10.3711 9.21677L6.53099 5.37012L10.3711 1.52346Z`,defaultFillRule:`inherit`,defaultClipRule:`inherit`,onClick:e.onCancel},{isRed:!1,info:`Reset connection`,svgWidth:`10`,svgHeight:`11`,path:fi,defaultFillRule:`evenodd`,defaultClipRule:`evenodd`,onClick:e.onResetConnection}]},this.snackbar.presentItem(t)}},mi=`.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;transition:opacity .25s;background-color:rgba(10,11,13,.5)}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-backdrop-hidden{opacity:0}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box{display:block;position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);padding:20px;border-radius:8px;background-color:#fff;color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box p{display:block;font-weight:400;font-size:14px;line-height:20px;padding-bottom:12px;color:#5b636e}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box button{appearance:none;border:none;background:none;color:#0052ff;padding:0;text-decoration:none;display:block;font-weight:600;font-size:16px;line-height:24px}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.dark{background-color:#0a0b0d;color:#fff}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.dark button{color:#0052ff}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.light{background-color:#fff;color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.light button{color:#0052ff}`,hi=class{constructor(){this.root=null,this.darkMode=ri()}attach(){let e=document.documentElement;this.root=document.createElement(`div`),this.root.className=`-cbwsdk-css-reset`,e.appendChild(this.root),ai()}present(e){this.render(e)}clear(){this.render(null)}render(e){this.root&&(je(null,this.root),e&&je(R(gi,Object.assign({},e,{onDismiss:()=>{this.clear()},darkMode:this.darkMode})),this.root))}},gi=({title:e,buttonText:t,darkMode:n,onButtonClick:r,onDismiss:i})=>{let a=n?`dark`:`light`;return R(ui,{darkMode:n},R(`div`,{class:`-cbwsdk-redirect-dialog`},R(`style`,null,mi),R(`div`,{class:`-cbwsdk-redirect-dialog-backdrop`,onClick:i}),R(`div`,{class:Pe(`-cbwsdk-redirect-dialog-box`,a)},R(`p`,null,e),R(`button`,{onClick:r},t))))},_i=`https://keys.coinbase.com/connect`,vi=`https://rpc.wallet.coinbase.com`,yi=`https://www.walletlink.org`,bi=`https://go.cb-w.com/walletlink`,xi=class{constructor(){this.attached=!1,this.redirectDialog=new hi}attach(){if(this.attached)throw Error(`Coinbase Wallet SDK UI is already attached`);this.redirectDialog.attach(),this.attached=!0}redirectToCoinbaseWallet(e){let t=new URL(bi);t.searchParams.append(`redirect_url`,ti().href),e&&t.searchParams.append(`wl_url`,e);let n=document.createElement(`a`);n.target=`cbw-opener`,n.href=t.href,n.rel=`noreferrer noopener`,n.click()}openCoinbaseWalletDeeplink(e){this.redirectDialog.present({title:`Redirecting to Coinbase Wallet...`,buttonText:`Open`,onButtonClick:()=>{this.redirectToCoinbaseWallet(e)}}),setTimeout(()=>{this.redirectToCoinbaseWallet(e)},99)}showConnecting(e){return()=>{this.redirectDialog.clear()}}},Si=class e{constructor(t){this.chainCallbackParams={chainId:``,jsonRpcUrl:``},this.isMobileWeb=ni(),this.linkedUpdated=e=>{this.isLinked=e;let t=this.storage.getItem(zr);if(e&&(this._session.linked=e),this.isUnlinkedErrorState=!1,t){let n=t.split(` `),r=this.storage.getItem(`IsStandaloneSigning`)===`true`;n[0]!==``&&!e&&this._session.linked&&!r&&(this.isUnlinkedErrorState=!0)}},this.metadataUpdated=(e,t)=>{this.storage.setItem(e,t)},this.chainUpdated=(e,t)=>{(this.chainCallbackParams.chainId!==e||this.chainCallbackParams.jsonRpcUrl!==t)&&(this.chainCallbackParams={chainId:e,jsonRpcUrl:t},this.chainCallback&&this.chainCallback(t,Number.parseInt(e,10)))},this.accountUpdated=t=>{this.accountsCallback&&this.accountsCallback([t]),e.accountRequestCallbackIds.size>0&&(Array.from(e.accountRequestCallbackIds.values()).forEach(e=>{this.invokeCallback(e,{method:`requestEthereumAccounts`,result:[t]})}),e.accountRequestCallbackIds.clear())},this.resetAndReload=this.resetAndReload.bind(this),this.linkAPIUrl=t.linkAPIUrl,this.storage=t.storage,this.metadata=t.metadata,this.accountsCallback=t.accountsCallback,this.chainCallback=t.chainCallback;let{session:n,ui:r,connection:i}=this.subscribe();this._session=n,this.connection=i,this.relayEventManager=new Yr,this.ui=r,this.ui.attach()}subscribe(){let e=$r.load(this.storage)||$r.create(this.storage),{linkAPIUrl:t}=this,n=new Jr({session:e,linkAPIUrl:t,listener:this}),r=this.isMobileWeb?new xi:new pi;return n.connect(),{session:e,ui:r,connection:n}}resetAndReload(){this.connection.destroy().then(()=>{$r.load(this.storage)?.id===this._session.id&&gn.clearAll(),document.location.reload()}).catch(e=>{})}signEthereumTransaction(e){return this.sendRequest({method:`signEthereumTransaction`,params:{fromAddress:e.fromAddress,toAddress:e.toAddress,weiValue:Kn(e.weiValue),data:Wn(e.data,!0),nonce:e.nonce,gasPriceInWei:e.gasPriceInWei?Kn(e.gasPriceInWei):null,maxFeePerGas:e.gasPriceInWei?Kn(e.gasPriceInWei):null,maxPriorityFeePerGas:e.gasPriceInWei?Kn(e.gasPriceInWei):null,gasLimit:e.gasLimit?Kn(e.gasLimit):null,chainId:e.chainId,shouldSubmit:!1}})}signAndSubmitEthereumTransaction(e){return this.sendRequest({method:`signEthereumTransaction`,params:{fromAddress:e.fromAddress,toAddress:e.toAddress,weiValue:Kn(e.weiValue),data:Wn(e.data,!0),nonce:e.nonce,gasPriceInWei:e.gasPriceInWei?Kn(e.gasPriceInWei):null,maxFeePerGas:e.maxFeePerGas?Kn(e.maxFeePerGas):null,maxPriorityFeePerGas:e.maxPriorityFeePerGas?Kn(e.maxPriorityFeePerGas):null,gasLimit:e.gasLimit?Kn(e.gasLimit):null,chainId:e.chainId,shouldSubmit:!0}})}submitEthereumTransaction(e,t){return this.sendRequest({method:`submitEthereumTransaction`,params:{signedTransaction:Wn(e,!0),chainId:t}})}getWalletLinkSession(){return this._session}sendRequest(e){let t=null,n=Vn(8),r=r=>{this.publishWeb3RequestCanceledEvent(n),this.handleErrorResponse(n,e.method,r),t?.()};return new Promise((i,a)=>{t=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:r,onResetConnection:this.resetAndReload}),this.relayEventManager.callbacks.set(n,e=>{if(t?.(),Vr(e))return a(Error(e.errorMessage));i(e)}),this.publishWeb3RequestEvent(n,e)})}publishWeb3RequestEvent(e,t){let n={type:`WEB3_REQUEST`,id:e,request:t};this.publishEvent(`Web3Request`,n,!0).then(e=>{}).catch(e=>{this.handleWeb3ResponseMessage(n.id,{method:t.method,errorMessage:e.message})}),this.isMobileWeb&&this.openCoinbaseWalletDeeplink(t.method)}openCoinbaseWalletDeeplink(e){if(this.ui instanceof xi)switch(e){case`requestEthereumAccounts`:case`switchEthereumChain`:return;default:window.addEventListener(`blur`,()=>{window.addEventListener(`focus`,()=>{this.connection.checkUnseenEvents()},{once:!0})},{once:!0}),this.ui.openCoinbaseWalletDeeplink()}}publishWeb3RequestCanceledEvent(e){let t={type:`WEB3_REQUEST_CANCELED`,id:e};this.publishEvent(`Web3RequestCanceled`,t,!1).then()}publishEvent(e,t,n){return this.connection.publishEvent(e,t,n)}handleWeb3ResponseMessage(t,n){if(n.method===`requestEthereumAccounts`){e.accountRequestCallbackIds.forEach(e=>this.invokeCallback(e,n)),e.accountRequestCallbackIds.clear();return}this.invokeCallback(t,n)}handleErrorResponse(e,t,n){let r=n?.message??`Unspecified error message.`;this.handleWeb3ResponseMessage(e,{method:t,errorMessage:r})}invokeCallback(e,t){let n=this.relayEventManager.callbacks.get(e);n&&(n(t),this.relayEventManager.callbacks.delete(e))}requestEthereumAccounts(){let{appName:t,appLogoUrl:n}=this.metadata,r={method:`requestEthereumAccounts`,params:{appName:t,appLogoUrl:n}},i=Vn(8);return new Promise((t,n)=>{this.relayEventManager.callbacks.set(i,e=>{if(Vr(e))return n(Error(e.errorMessage));t(e)}),e.accountRequestCallbackIds.add(i),this.publishWeb3RequestEvent(i,r)})}watchAsset(e,t,n,r,i,a){let o={method:`watchAsset`,params:{type:e,options:{address:t,symbol:n,decimals:r,image:i},chainId:a}},s=null,c=Vn(8);return s=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:e=>{this.publishWeb3RequestCanceledEvent(c),this.handleErrorResponse(c,o.method,e),s?.()},onResetConnection:this.resetAndReload}),new Promise((e,t)=>{this.relayEventManager.callbacks.set(c,n=>{if(s?.(),Vr(n))return t(Error(n.errorMessage));e(n)}),this.publishWeb3RequestEvent(c,o)})}addEthereumChain(e,t,n,r,i,a){let o={method:`addEthereumChain`,params:{chainId:e,rpcUrls:t,blockExplorerUrls:r,chainName:i,iconUrls:n,nativeCurrency:a}},s=null,c=Vn(8);return s=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:e=>{this.publishWeb3RequestCanceledEvent(c),this.handleErrorResponse(c,o.method,e),s?.()},onResetConnection:this.resetAndReload}),new Promise((e,t)=>{this.relayEventManager.callbacks.set(c,n=>{if(s?.(),Vr(n))return t(Error(n.errorMessage));e(n)}),this.publishWeb3RequestEvent(c,o)})}switchEthereumChain(e,t){let n={method:`switchEthereumChain`,params:Object.assign({chainId:e},{address:t})},r=null,i=Vn(8);return r=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:e=>{this.publishWeb3RequestCanceledEvent(i),this.handleErrorResponse(i,n.method,e),r?.()},onResetConnection:this.resetAndReload}),new Promise((e,t)=>{this.relayEventManager.callbacks.set(i,n=>{if(r?.(),Vr(n)&&n.errorCode)return t(z.provider.custom({code:n.errorCode,message:`Unrecognized chain ID. Try adding the chain using addEthereumChain first.`}));if(Vr(n))return t(Error(n.errorMessage));e(n)}),this.publishWeb3RequestEvent(i,n)})}};Si.accountRequestCallbackIds=new Set;var Ci=`DefaultChainId`,wi=`DefaultJsonRpcUrl`,Ti=class{constructor(e){this._relay=null,this._addresses=[],this.metadata=e.metadata,this._storage=new gn(`walletlink`,yi),this.callback=e.callback||null;let t=this._storage.getItem(zr);if(t){let e=t.split(` `);e[0]!==``&&(this._addresses=e.map(e=>er(e)))}this.initializeRelay()}getSession(){let{id:e,secret:t}=this.initializeRelay().getWalletLinkSession();return{id:e,secret:t}}async handshake(){await this._eth_requestAccounts()}get selectedAddress(){return this._addresses[0]||void 0}get jsonRpcUrl(){return this._storage.getItem(wi)??void 0}set jsonRpcUrl(e){this._storage.setItem(wi,e)}updateProviderInfo(e,t){var n;this.jsonRpcUrl=e;let r=this.getChainId();this._storage.setItem(Ci,t.toString(10)),nr(t)!==r&&((n=this.callback)==null||n.call(this,`chainChanged`,qn(t)))}async watchAsset(e){let t=Array.isArray(e)?e[0]:e;if(!t.type)throw z.rpc.invalidParams(`Type is required`);if(t?.type!==`ERC20`)throw z.rpc.invalidParams(`Asset of type '${t.type}' is not supported`);if(!t?.options)throw z.rpc.invalidParams(`Options are required`);if(!t?.options.address)throw z.rpc.invalidParams(`Address is required`);let n=this.getChainId(),{address:r,symbol:i,image:a,decimals:o}=t.options,s=await this.initializeRelay().watchAsset(t.type,r,i,o,a,n?.toString());return!Vr(s)&&!!s.result}async addEthereumChain(e){let t=e[0];if(t.rpcUrls?.length===0)throw z.rpc.invalidParams(`please pass in at least 1 rpcUrl`);if(!t.chainName||t.chainName.trim()===``)throw z.rpc.invalidParams(`chainName is a required field`);if(!t.nativeCurrency)throw z.rpc.invalidParams(`nativeCurrency is a required field`);let n=Number.parseInt(t.chainId,16);if(n===this.getChainId())return!1;let r=this.initializeRelay(),{rpcUrls:i=[],blockExplorerUrls:a=[],chainName:o,iconUrls:s=[],nativeCurrency:c}=t,l=await r.addEthereumChain(n.toString(),i,s,a,o,c);if(Vr(l))return!1;if(l.result?.isApproved===!0)return this.updateProviderInfo(i[0],n),null;throw z.rpc.internal(`unable to add ethereum chain`)}async switchEthereumChain(e){let t=e[0],n=Number.parseInt(t.chainId,16),r=await this.initializeRelay().switchEthereumChain(n.toString(10),this.selectedAddress||void 0);if(Vr(r))throw r;let i=r.result;return i.isApproved&&i.rpcUrl.length>0&&this.updateProviderInfo(i.rpcUrl,n),null}async cleanup(){this.callback=null,this._relay&&this._relay.resetAndReload(),this._storage.clear()}_setAddresses(e,t){var n;if(!Array.isArray(e))throw Error(`addresses is not an array`);let r=e.map(e=>er(e));JSON.stringify(r)!==JSON.stringify(this._addresses)&&(this._addresses=r,(n=this.callback)==null||n.call(this,`accountsChanged`,r),this._storage.setItem(zr,r.join(` `)))}async request(e){let t=e.params||[];switch(e.method){case`eth_accounts`:return[...this._addresses];case`eth_coinbase`:return this.selectedAddress||null;case`net_version`:return this.getChainId().toString(10);case`eth_chainId`:return qn(this.getChainId());case`eth_requestAccounts`:return this._eth_requestAccounts();case`eth_ecRecover`:case`personal_ecRecover`:return this.ecRecover(e);case`personal_sign`:return this.personalSign(e);case`eth_signTransaction`:return this._eth_signTransaction(t);case`eth_sendRawTransaction`:return this._eth_sendRawTransaction(t);case`eth_sendTransaction`:return this._eth_sendTransaction(t);case`eth_signTypedData_v1`:case`eth_signTypedData_v3`:case`eth_signTypedData_v4`:case`eth_signTypedData`:return this.signTypedData(e);case`wallet_addEthereumChain`:return this.addEthereumChain(t);case`wallet_switchEthereumChain`:return this.switchEthereumChain(t);case`wallet_watchAsset`:return this.watchAsset(t);default:if(!this.jsonRpcUrl)throw z.rpc.internal(`No RPC URL set for chain`);return xr(e,this.jsonRpcUrl)}}_ensureKnownAddress(e){let t=er(e);if(!this._addresses.map(e=>er(e)).includes(t))throw Error(`Unknown Ethereum address`)}_prepareTransactionParams(e){let t=e.from?er(e.from):this.selectedAddress;if(!t)throw Error(`Ethereum address is unavailable`);return this._ensureKnownAddress(t),{fromAddress:t,toAddress:e.to?er(e.to):null,weiValue:e.value==null?BigInt(0):rr(e.value),data:e.data?tr(e.data):Buffer.alloc(0),nonce:e.nonce==null?null:nr(e.nonce),gasPriceInWei:e.gasPrice==null?null:rr(e.gasPrice),maxFeePerGas:e.maxFeePerGas==null?null:rr(e.maxFeePerGas),maxPriorityFeePerGas:e.maxPriorityFeePerGas==null?null:rr(e.maxPriorityFeePerGas),gasLimit:e.gas==null?null:rr(e.gas),chainId:e.chainId?nr(e.chainId):this.getChainId()}}async ecRecover(e){let{method:t,params:n}=e;if(!Array.isArray(n))throw z.rpc.invalidParams();let r=await this.initializeRelay().sendRequest({method:`ethereumAddressFromSignedMessage`,params:{message:Gn(n[0]),signature:Gn(n[1]),addPrefix:t===`personal_ecRecover`}});if(Vr(r))throw r;return r.result}getChainId(){return Number.parseInt(this._storage.getItem(Ci)??`1`,10)}async _eth_requestAccounts(){var e,t;if(this._addresses.length>0)return(e=this.callback)==null||e.call(this,`connect`,{chainId:qn(this.getChainId())}),this._addresses;let n=await this.initializeRelay().requestEthereumAccounts();if(Vr(n))throw n;if(!n.result)throw Error(`accounts received is empty`);return this._setAddresses(n.result),(t=this.callback)==null||t.call(this,`connect`,{chainId:qn(this.getChainId())}),this._addresses}async personalSign({params:e}){if(!Array.isArray(e))throw z.rpc.invalidParams();let t=e[1],n=e[0];this._ensureKnownAddress(t);let r=await this.initializeRelay().sendRequest({method:`signEthereumMessage`,params:{address:er(t),message:Gn(n),addPrefix:!0,typedDataJson:null}});if(Vr(r))throw r;return r.result}async _eth_signTransaction(e){let t=this._prepareTransactionParams(e[0]||{}),n=await this.initializeRelay().signEthereumTransaction(t);if(Vr(n))throw n;return n.result}async _eth_sendRawTransaction(e){let t=tr(e[0]),n=await this.initializeRelay().submitEthereumTransaction(t,this.getChainId());if(Vr(n))throw n;return n.result}async _eth_sendTransaction(e){let t=this._prepareTransactionParams(e[0]||{}),n=await this.initializeRelay().signAndSubmitEthereumTransaction(t);if(Vr(n))throw n;return n.result}async signTypedData(e){let{method:t,params:n}=e;if(!Array.isArray(n))throw z.rpc.invalidParams();let r=e=>Wn({eth_signTypedData_v1:Lr.default.hashForSignTypedDataLegacy,eth_signTypedData_v3:Lr.default.hashForSignTypedData_v3,eth_signTypedData_v4:Lr.default.hashForSignTypedData_v4,eth_signTypedData:Lr.default.hashForSignTypedData_v4}[t]({data:ir(e)}),!0),i=n[+(t===`eth_signTypedData_v1`)],a=n[t===`eth_signTypedData_v1`?0:1];this._ensureKnownAddress(i);let o=await this.initializeRelay().sendRequest({method:`signEthereumMessage`,params:{address:er(i),message:r(a),typedDataJson:JSON.stringify(a,null,2),addPrefix:!1}});if(Vr(o))throw o;return o.result}initializeRelay(){return this._relay||=new Si({linkAPIUrl:yi,storage:this._storage,metadata:this.metadata,accountsCallback:this._setAddresses.bind(this),chainCallback:this.updateProviderInfo.bind(this)}),this._relay}},Ei=`SignerType`,Di=new gn(`CBWSDK`,`SignerConfigurator`);function Oi(){return Di.getItem(Ei)}function ki(e){Di.setItem(Ei,e)}async function Ai(e){let{communicator:t,metadata:n,handshakeRequest:r,callback:i}=e;Mi(t,n,i).catch(()=>{});let a={id:crypto.randomUUID(),event:`selectSignerType`,data:Object.assign(Object.assign({},e.preference),{handshakeRequest:r})},{data:o}=await t.postRequestAndWaitForResponse(a);return o}function ji(e){let{signerType:t,metadata:n,communicator:r,callback:i}=e;switch(t){case`scw`:return new Ar({metadata:n,callback:i,communicator:r});case`walletlink`:return new Ti({metadata:n,callback:i})}}async function Mi(e,t,n){await e.onMessage(({event:e})=>e===`WalletLinkSessionRequest`);let r=new Ti({metadata:t,callback:n});e.postMessage({event:`WalletLinkUpdate`,data:{session:r.getSession()}}),await r.handshake(),e.postMessage({event:`WalletLinkUpdate`,data:{connected:!0}})}var Ni=`Coinbase Wallet SDK requires the Cross-Origin-Opener-Policy header to not be set to 'same-origin'. This is to ensure that the SDK can communicate with the Coinbase Smart Wallet app.
|
|
3
|
+
|
|
4
|
+
Please see https://www.smartwallet.dev/guides/tips/popup-tips#cross-origin-opener-policy for more information.`,{checkCrossOriginOpenerPolicy:Pi,getCrossOriginOpenerPolicy:Fi}=(()=>{let e;return{getCrossOriginOpenerPolicy:()=>e===void 0?`undefined`:e,checkCrossOriginOpenerPolicy:async()=>{if(typeof window>`u`){e=`non-browser-env`;return}try{let t=`${window.location.origin}${window.location.pathname}`,n=await fetch(t,{method:`HEAD`});if(!n.ok)throw Error(`HTTP error! status: ${n.status}`);e=n.headers.get(`Cross-Origin-Opener-Policy`)??`null`,e===`same-origin`&&console.error(Ni)}catch(t){console.error(`Error checking Cross-Origin-Opener-Policy:`,t.message),e=`error`}}}})(),Ii=420,Li=540,Ri={isRed:!1,info:`Retry`,svgWidth:`10`,svgHeight:`11`,path:fi,defaultFillRule:`evenodd`,defaultClipRule:`evenodd`},zi=`Popup was blocked. Try again.`,Bi=null;function Vi(e){let t=(window.innerWidth-Ii)/2+window.screenX,n=(window.innerHeight-Li)/2+window.screenY;Ui(e);function r(){let r=`wallet_${crypto.randomUUID()}`,i=window.open(e,r,`width=${Ii}, height=${Li}, left=${t}, top=${n}`);return i?.focus(),i||null}let i=r();if(!i){let e=Wi();return new Promise((t,n)=>{e.presentItem({autoExpand:!0,message:zi,menuItems:[Object.assign(Object.assign({},Ri),{onClick:()=>{i=r(),i?t(i):n(z.rpc.internal(`Popup window was blocked`)),e.clear()}})]})})}return Promise.resolve(i)}function Hi(e){e&&!e.closed&&e.close()}function Ui(e){let t={sdkName:br,sdkVersion:yr,origin:window.location.origin,coop:Fi()};for(let[n,r]of Object.entries(t))e.searchParams.append(n,r.toString())}function Wi(){if(!Bi){let e=document.createElement(`div`);e.className=`-cbwsdk-css-reset`,document.body.appendChild(e),Bi=new li,Bi.attach(e)}return Bi}var Gi=class{constructor({url:e=_i,metadata:t,preference:n}){this.popup=null,this.listeners=new Map,this.postMessage=async e=>{(await this.waitForPopupLoaded()).postMessage(e,this.url.origin)},this.postRequestAndWaitForResponse=async e=>{let t=this.onMessage(({requestId:t})=>t===e.id);return this.postMessage(e),await t},this.onMessage=async e=>new Promise((t,n)=>{let r=n=>{if(n.origin!==this.url.origin)return;let i=n.data;e(i)&&(t(i),window.removeEventListener(`message`,r),this.listeners.delete(r))};window.addEventListener(`message`,r),this.listeners.set(r,{reject:n})}),this.disconnect=()=>{Hi(this.popup),this.popup=null,this.listeners.forEach(({reject:e},t)=>{e(z.provider.userRejectedRequest(`Request rejected`)),window.removeEventListener(`message`,t)}),this.listeners.clear()},this.waitForPopupLoaded=async()=>this.popup&&!this.popup.closed?(this.popup.focus(),this.popup):(this.popup=await Vi(this.url),this.onMessage(({event:e})=>e===`PopupUnload`).then(this.disconnect).catch(()=>{}),this.onMessage(({event:e})=>e===`PopupLoaded`).then(e=>{this.postMessage({requestId:e.id,data:{version:yr,metadata:this.metadata,preference:this.preference,location:window.location.toString()}})}).then(()=>{if(!this.popup)throw z.rpc.internal();return this.popup})),this.url=new URL(e),this.metadata=t,this.preference=n}};function Ki(e){let t=Cn(qi(e),{shouldIncludeStack:!0}),n=new URL(`https://docs.cloud.coinbase.com/wallet-sdk/docs/errors`);return n.searchParams.set(`version`,yr),n.searchParams.set(`code`,t.code.toString()),n.searchParams.set(`message`,t.message),Object.assign(Object.assign({},t),{docUrl:n.href})}function qi(e){if(typeof e==`string`)return{message:e,code:_n.rpc.internal};if(Vr(e)){let t=e.errorMessage,n=e.errorCode??(t.match(/(denied|rejected)/i)?_n.provider.userRejectedRequest:void 0);return Object.assign(Object.assign({},e),{message:t,code:n,data:{method:e.method}})}return e}var Ji=class extends k.default{},Yi=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Xi=class extends Ji{constructor(e){var{metadata:t}=e,n=e.preference,{keysUrl:r}=n,i=Yi(n,[`keysUrl`]);super(),this.signer=null,this.isCoinbaseWallet=!0,this.metadata=t,this.preference=i,this.communicator=new Gi({url:r,metadata:t,preference:i});let a=Oi();a&&(this.signer=this.initSigner(a))}async request(e){try{if(Tr(e),!this.signer)switch(e.method){case`eth_requestAccounts`:{let t=await this.requestSignerSelection(e),n=this.initSigner(t);await n.handshake(e),this.signer=n,ki(t);break}case`wallet_sendCalls`:{let t=this.initSigner(`scw`);await t.handshake({method:`handshake`});let n=await t.request(e);return await t.cleanup(),n}case`wallet_getCallsStatus`:return xr(e,vi);case`net_version`:return 1;case`eth_chainId`:return qn(1);default:throw z.provider.unauthorized(`Must call 'eth_requestAccounts' before other methods`)}return await this.signer.request(e)}catch(e){let{code:t}=e;return t===_n.provider.unauthorized&&this.disconnect(),Promise.reject(Ki(e))}}async enable(){return console.warn(`.enable() has been deprecated. Please use .request({ method: "eth_requestAccounts" }) instead.`),await this.request({method:`eth_requestAccounts`})}async disconnect(){await this.signer?.cleanup(),this.signer=null,gn.clearAll(),this.emit(`disconnect`,z.provider.disconnected(`User initiated disconnection`))}requestSignerSelection(e){return Ai({communicator:this.communicator,preference:this.preference,metadata:this.metadata,handshakeRequest:e,callback:this.emit.bind(this)})}initSigner(e){return ji({signerType:e,metadata:this.metadata,communicator:this.communicator,callback:this.emit.bind(this)})}};function Zi(e){if(e){if(![`all`,`smartWalletOnly`,`eoaOnly`].includes(e.options))throw Error(`Invalid options: ${e.options}`);if(e.attribution&&e.attribution.auto!==void 0&&e.attribution.dataSuffix!==void 0)throw Error(`Attribution cannot contain both auto and dataSuffix properties`)}}function Qi(e){let t={metadata:e.metadata,preference:e.preference};return wr(t)??new Xi(t)}var $i={options:`all`};function ea(e){new gn(`CBWSDK`).setItem(`VERSION`,yr),Pi();let t={metadata:{appName:e.appName||`Dapp`,appLogoUrl:e.appLogoUrl||``,appChainIds:e.appChainIds||[]},preference:Object.assign($i,e.preference??{})};Zi(t.preference);let n=null;return{getProvider:()=>(n||=Qi(t),n)}}var ta=`0.1.1`;function na(){return ta}var ra=class e extends Error{constructor(t,n={}){let r=(()=>{if(n.cause instanceof e){if(n.cause.details)return n.cause.details;if(n.cause.shortMessage)return n.cause.shortMessage}return n.cause&&`details`in n.cause&&typeof n.cause.details==`string`?n.cause.details:n.cause?.message?n.cause.message:n.details})(),i=n.cause instanceof e&&n.cause.docsPath||n.docsPath,a=`https://oxlib.sh${i??``}`,o=[t||`An error occurred.`,...n.metaMessages?[``,...n.metaMessages]:[],...r||i?[``,r?`Details: ${r}`:void 0,i?`See: ${a}`:void 0]:[]].filter(e=>typeof e==`string`).join(`
|
|
5
|
+
`);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,"docs",{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,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`BaseError`}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:`ox@${na()}`}),this.cause=n.cause,this.details=r,this.docs=a,this.docsPath=i,this.shortMessage=t}walk(e){return ia(this,e)}};function ia(e,t){return t?.(e)?e:e&&typeof e==`object`&&`cause`in e&&e.cause?ia(e.cause,t):t?null:e}function aa(e,t){if(za(e)>t)throw new Ha({givenSize:za(e),maxSize:t})}var oa={zero:48,nine:57,A:65,F:70,a:97,f:102};function sa(e){if(e>=oa.zero&&e<=oa.nine)return e-oa.zero;if(e>=oa.A&&e<=oa.F)return e-(oa.A-10);if(e>=oa.a&&e<=oa.f)return e-(oa.a-10)}function ca(e,t={}){let{dir:n,size:r=32}=t;if(r===0)return e;if(e.length>r)throw new Ua({size:e.length,targetSize:r,type:`Bytes`});let i=new Uint8Array(r);for(let t=0;t<r;t++){let a=n===`right`;i[a?t:r-t-1]=e[a?t:e.length-t-1]}return i}function la(e,t){if(wa(e)>t)throw new ka({givenSize:wa(e),maxSize:t})}function ua(e,t){if(typeof t==`number`&&t>0&&t>wa(e)-1)throw new Aa({offset:t,position:`start`,size:wa(e)})}function da(e,t,n){if(typeof t==`number`&&typeof n==`number`&&wa(e)!==n-t)throw new Aa({offset:n,position:`end`,size:wa(e)})}function fa(e,t={}){let{dir:n,size:r=32}=t;if(r===0)return e;let i=e.replace(`0x`,``);if(i.length>r*2)throw new ja({size:Math.ceil(i.length/2),targetSize:r,type:`Hex`});return`0x${i[n===`right`?`padEnd`:`padStart`](r*2,`0`)}`}var pa=`#__bigint`;function ma(e,t,n){return JSON.stringify(e,(e,n)=>typeof t==`function`?t(e,n):typeof n==`bigint`?n.toString()+pa:n,n)}var ha=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function ga(e,t={}){let{strict:n=!1}=t;if(!e||typeof e!=`string`)throw new Da(e);if(n&&!/^0x[0-9a-fA-F]*$/.test(e)||!e.startsWith(`0x`))throw new Oa(e)}function _a(...e){return`0x${e.reduce((e,t)=>e+t.replace(`0x`,``),``)}`}function va(e){return e instanceof Uint8Array?ya(e):Array.isArray(e)?ya(new Uint8Array(e)):e}function ya(e,t={}){let n=``;for(let t=0;t<e.length;t++)n+=ha[e[t]];let r=`0x${n}`;return typeof t.size==`number`?(la(r,t.size),Sa(r,t.size)):r}function ba(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 Ea({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?xa(s,r):s}function xa(e,t){return fa(e,{dir:`left`,size:t})}function Sa(e,t){return fa(e,{dir:`right`,size:t})}function Ca(e,t,n,r={}){let{strict:i}=r;ua(e,t);let a=`0x${e.replace(`0x`,``).slice((t??0)*2,(n??e.length)*2)}`;return i&&da(a,t,n),a}function wa(e){return Math.ceil((e.length-2)/2)}function Ta(e,t={}){let{strict:n=!1}=t;try{return ga(e,{strict:n}),!0}catch{return!1}}var Ea=class extends ra{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}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Hex.IntegerOutOfRangeError`})}},Da=class extends ra{constructor(e){super(`Value \`${typeof e==`object`?ma(e):e}\` of type \`${typeof e}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Hex.InvalidHexTypeError`})}},Oa=class extends ra{constructor(e){super(`Value \`${e}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Hex.InvalidHexValueError`})}},ka=class extends ra{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Hex.SizeOverflowError`})}},Aa=class extends ra{constructor({offset:e,position:t,size:n}){super(`Slice ${t===`start`?`starting`:`ending`} at offset \`${e}\` is out-of-bounds (size: \`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Hex.SliceOffsetOutOfBoundsError`})}},ja=class extends ra{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Hex.SizeExceedsPaddingSizeError`})}},Ma=new TextEncoder;function Na(e){if(!(e instanceof Uint8Array)&&(!e||typeof e!=`object`||!(`BYTES_PER_ELEMENT`in e)||e.BYTES_PER_ELEMENT!==1||e.constructor.name!==`Uint8Array`))throw new Va(e)}function Pa(e){return e instanceof Uint8Array?e:typeof e==`string`?Ia(e):Fa(e)}function Fa(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function Ia(e,t={}){let{size:n}=t,r=e;n&&(la(e,n),r=Sa(e,n));let i=r.slice(2);i.length%2&&(i=`0${i}`);let a=i.length/2,o=new Uint8Array(a);for(let e=0,t=0;e<a;e++){let n=sa(i.charCodeAt(t++)),r=sa(i.charCodeAt(t++));if(n===void 0||r===void 0)throw new ra(`Invalid byte sequence ("${i[t-2]}${i[t-1]}" in "${i}").`);o[e]=n*16+r}return o}function La(e,t={}){let{size:n}=t,r=Ma.encode(e);return typeof n==`number`?(aa(r,n),Ra(r,n)):r}function Ra(e,t){return ca(e,{dir:`right`,size:t})}function za(e){return e.length}function Ba(e){try{return Na(e),!0}catch{return!1}}var Va=class extends ra{constructor(e){super(`Value \`${typeof e==`object`?ma(e):e}\` of type \`${typeof e}\` is an invalid Bytes value.`,{metaMessages:["Bytes values must be of type `Bytes`."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Bytes.InvalidBytesTypeError`})}},Ha=class extends ra{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Bytes.SizeOverflowError`})}},Ua=class extends ra{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Bytes.SizeExceedsPaddingSizeError`})}};function Wa(e,t={}){let{as:n=typeof e==`string`?`Hex`:`Bytes`}=t,r=re(Pa(e));return n===`Bytes`?r:ya(r)}var Ga={checksum: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)}.checksum;function Ka(e,t={}){let{compressed:n}=t,{prefix:r,x:i,y:a}=e;if(n===!1||typeof i==`bigint`&&typeof a==`bigint`){if(r!==4)throw new Qa({prefix:r,cause:new eo});return}if(n===!0||typeof i==`bigint`&&a===void 0){if(r!==3&&r!==2)throw new Qa({prefix:r,cause:new $a});return}throw new Za({publicKey:e})}function qa(e){let t=(()=>{if(Ta(e))return Ya(e);if(Ba(e))return Ja(e);let{prefix:t,x:n,y:r}=e;return typeof n==`bigint`&&typeof r==`bigint`?{prefix:t??4,x:n,y:r}:{prefix:t,x:n}})();return Ka(t),t}function Ja(e){return Ya(ya(e))}function Ya(e){if(e.length!==132&&e.length!==130&&e.length!==68)throw new to({publicKey:e});return e.length===130?{prefix:4,x:BigInt(Ca(e,0,32)),y:BigInt(Ca(e,32,64))}:e.length===132?{prefix:Number(Ca(e,0,1)),x:BigInt(Ca(e,1,33)),y:BigInt(Ca(e,33,65))}:{prefix:Number(Ca(e,0,1)),x:BigInt(Ca(e,1,33))}}function Xa(e,t={}){Ka(e);let{prefix:n,x:r,y:i}=e,{includePrefix:a=!0}=t;return _a(a?ba(n,{size:1}):`0x`,ba(r,{size:32}),typeof i==`bigint`?ba(i,{size:32}):`0x`)}var Za=class extends ra{constructor({publicKey:e}){super(`Value \`${ma(e)}\` is not a valid public key.`,{metaMessages:[`Public key must contain:`,"- an `x` and `prefix` value (compressed)","- an `x`, `y`, and `prefix` value (uncompressed)"]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`PublicKey.InvalidError`})}},Qa=class extends ra{constructor({prefix:e,cause:t}){super(`Prefix "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`PublicKey.InvalidPrefixError`})}},$a=class extends ra{constructor(){super(`Prefix must be 2 or 3 for compressed public keys.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`PublicKey.InvalidCompressedPrefixError`})}},eo=class extends ra{constructor(){super(`Prefix must be 4 for uncompressed public keys.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`PublicKey.InvalidUncompressedPrefixError`})}},to=class extends ra{constructor({publicKey:e}){super(`Value \`${e}\` is an invalid public key size.`,{metaMessages:[`Expected: 33 bytes (compressed + prefix), 64 bytes (uncompressed) or 65 bytes (uncompressed + prefix).`,`Received ${wa(va(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`PublicKey.InvalidSerializedSizeError`})}},no=/^0x[a-fA-F0-9]{40}$/;function ro(e,t={}){let{strict:n=!0}=t;if(!no.test(e))throw new so({address:e,cause:new co});if(n){if(e.toLowerCase()===e)return;if(io(e)!==e)throw new so({address:e,cause:new lo})}}function io(e){if(Ga.has(e))return Ga.get(e);ro(e,{strict:!1});let t=e.substring(2).toLowerCase(),n=Wa(La(t),{as:`Bytes`}),r=t.split(``);for(let e=0;e<40;e+=2)n[e>>1]>>4>=8&&r[e]&&(r[e]=r[e].toUpperCase()),(n[e>>1]&15)>=8&&r[e+1]&&(r[e+1]=r[e+1].toUpperCase());let i=`0x${r.join(``)}`;return Ga.set(e,i),i}function ao(e,t={}){let{checksum:n=!1}=t;return ro(e),n?io(e):e}function oo(e,t={}){return ao(`0x${Wa(`0x${Xa(e).slice(4)}`).substring(26)}`,t)}var so=class extends ra{constructor({address:e,cause:t}){super(`Address "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Address.InvalidAddressError`})}},co=class extends ra{constructor(){super(`Address is not a 20 byte (40 hexadecimal character) value.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Address.InvalidInputError`})}},lo=class extends ra{constructor(){super(`Address does not match its checksum counterpart.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Address.InvalidChecksumError`})}};function uo(e){if(e.length!==130&&e.length!==132)throw new po({signature:e});let t=BigInt(Ca(e,0,32)),n=BigInt(Ca(e,32,64)),r=(()=>{let t=Number(`0x${e.slice(130)}`);if(!Number.isNaN(t))try{return fo(t)}catch{throw new mo({value:t})}})();return r===void 0?{r:t,s:n}:{r:t,s:n,yParity:r}}function fo(e){if(e===0||e===27)return 0;if(e===1||e===28)return 1;if(e>=35)return+(e%2==0);throw new ho({value:e})}var po=class extends ra{constructor({signature:e}){super(`Value \`${e}\` is an invalid signature size.`,{metaMessages:[`Expected: 64 bytes or 65 bytes.`,`Received ${wa(va(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Signature.InvalidSerializedSizeError`})}},mo=class extends ra{constructor({value:e}){super(`Value \`${e}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Signature.InvalidYParityError`})}},ho=class extends ra{constructor({value:e}){super(`Value \`${e}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`Signature.InvalidVError`})}};function go(e){return oo(_o(e))}function _o(e){let{payload:t,signature:n}=e,{r,s:i,yParity:a}=n;return qa(new ie.Signature(BigInt(r),BigInt(i)).addRecoveryBit(a).recoverPublicKey(va(t).substring(2)))}var vo=t(((e,t)=>{var n=qe();t.exports=f;var r=M().console||{},i={mapHttpRequest:T,mapHttpResponse:T,wrapRequestSerializer:E,wrapResponseSerializer:E,wrapErrorSerializer:E,req:T,res:T,err:C,errWithCause:C};function a(e,t){return e===`silent`?1/0:t.levels.values[e]}var o=Symbol(`pino.logFuncs`),s=Symbol(`pino.hierarchy`),c={error:`log`,fatal:`error`,warn:`error`,info:`log`,debug:`log`,trace:`log`};function l(e,t){t[s]={logger:t,parent:e[s]}}function u(e,t,n){let i={};t.forEach(e=>{i[e]=n[e]?n[e]:r[e]||r[c[e]||`log`]||D}),e[o]=i}function d(e,t){return Array.isArray(e)?e.filter(function(e){return e!==`!stdSerializers.err`}):e===!0&&Object.keys(t)}function f(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||{},o=d(e.browser.serialize,i),s=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf(`!stdSerializers.err`)>-1&&(s=!1);let c=Object.keys(e.customLevels||{}),f=[`error`,`fatal`,`warn`,`info`,`debug`,`trace`].concat(c);typeof n==`function`&&f.forEach(function(e){n[e]=n}),(e.enabled===!1||e.browser.disabled)&&(e.level=`silent`);let m=e.level||`info`,h=Object.create(n);h.log||=D,u(h,f,n),l({},h),Object.defineProperty(h,"levelVal",{get:v}),Object.defineProperty(h,"level",{get:y,set:x});let _={transmit:t,serialize:o,asObject:e.browser.asObject,asObjectBindingsOnly:e.browser.asObjectBindingsOnly,formatters:e.browser.formatters,levels:f,timestamp:w(e),messageKey:e.messageKey||`msg`,onChild:e.onChild||D};h.levels=p(e),h.level=m,h.isLevelEnabled=function(e){return this.levels.values[e]?this.levels.values[e]>=this.levels.values[this.level]:!1},h.setMaxListeners=h.getMaxListeners=h.emit=h.addListener=h.on=h.prependListener=h.once=h.prependOnceListener=h.removeListener=h.removeAllListeners=h.listeners=h.listenerCount=h.eventNames=h.write=h.flush=D,h.serializers=i,h._serialize=o,h._stdErrSerialize=s,h.child=function(...e){return C.call(this,_,...e)},t&&(h._logEvent=S());function v(){return a(this.level,this)}function y(){return this._level}function x(e){if(e!==`silent`&&!this.levels.values[e])throw Error(`unknown level `+e);this._level=e,g(this,_,h,`error`),g(this,_,h,`fatal`),g(this,_,h,`warn`),g(this,_,h,`info`),g(this,_,h,`debug`),g(this,_,h,`trace`),c.forEach(e=>{g(this,_,h,e)})}function C(n,r,a){if(!r)throw Error(`missing bindings for child Pino`);a||={},o&&r.serializers&&(a.serializers=r.serializers);let s=a.serializers;if(o&&s){var c=Object.assign({},i,s),u=e.browser.serialize===!0?Object.keys(c):o;delete r.serializers,b([r],u,c,this._stdErrSerialize)}function d(e){this._childLevel=(e._childLevel|0)+1,this.bindings=r,c&&(this.serializers=c,this._serialize=u),t&&(this._logEvent=S([].concat(e._logEvent.bindings,r)))}d.prototype=this;let f=new d(this);return l(this,f),f.child=function(...e){return C.call(this,n,...e)},f.level=a.level||this.level,n.onChild(f),f}return h}function p(e){let t=e.customLevels||{};return{values:Object.assign({},f.levels.values,t),labels:Object.assign({},f.levels.labels,m(t))}}function m(e){let t={};return Object.keys(e).forEach(function(n){t[e[n]]=n}),t}f.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`}},f.stdSerializers=i,f.stdTimeFunctions=Object.assign({},{nullTime:O,epochTime:k,unixTime:A,isoTime:j});function h(e){let t=[];e.bindings&&t.push(e.bindings);let n=e[s];for(;n.parent;)n=n.parent,n.logger.bindings&&t.push(n.logger.bindings);return t.reverse()}function g(e,t,n,r){if(Object.defineProperty(e,r,{value:a(e.level,n)>a(r,n)?D:n[o][r],writable:!0,enumerable:!0,configurable:!0}),e[r]===D){if(!t.transmit)return;let i=a(t.transmit.level||e.level,n);if(a(r,n)<i)return}e[r]=v(e,t,n,r);let i=h(e);i.length!==0&&(e[r]=_(i,e[r]))}function _(e,t){return function(){return t.apply(this,[...e,...arguments])}}function v(e,t,n,i){return(function(o){return function(){let s=t.timestamp(),c=Array(arguments.length),l=Object.getPrototypeOf&&Object.getPrototypeOf(this)===r?r:this;for(var u=0;u<c.length;u++)c[u]=arguments[u];var d=!1;if(t.serialize&&(b(c,this._serialize,this.serializers,this._stdErrSerialize),d=!0),t.asObject||t.formatters?o.call(l,...y(this,i,c,s,t)):o.apply(l,c),t.transmit){let r=t.transmit.level||e._level,o=a(r,n),l=a(i,n);if(l<o)return;x(this,{ts:s,methodLevel:i,methodValue:l,transmitLevel:r,transmitValue:n.levels.values[t.transmit.level||e._level],send:t.transmit.send,val:a(e._level,n)},c,d)}}})(e[o][i])}function y(e,t,r,i,a){let{level:o,log:s=e=>e}=a.formatters||{},c=r.slice(),l=c[0],u={},d=(e._childLevel|0)+1;if(d<1&&(d=1),i&&(u.time=i),o){let n=o(t,e.levels.values[t]);Object.assign(u,n)}else u.level=e.levels.values[t];if(a.asObjectBindingsOnly){if(typeof l==`object`&&l)for(;d--&&typeof c[0]==`object`;)Object.assign(u,c.shift());return[s(u),...c]}if(typeof l==`object`&&l){for(;d--&&typeof c[0]==`object`;)Object.assign(u,c.shift());l=c.length?n(c.shift(),c):void 0}else typeof l==`string`&&(l=n(c.shift(),c));return l!==void 0&&(u[a.messageKey]=l),[s(u)]}function b(e,t,n,r){for(let i in e)if(r&&e[i]instanceof Error)e[i]=f.stdSerializers.err(e[i]);else if(typeof e[i]==`object`&&!Array.isArray(e[i])&&t)for(let r in e[i])t.indexOf(r)>-1&&r in n&&(e[i][r]=n[r](e[i][r]))}function x(e,t,n,r=!1){let i=t.send,a=t.ts,o=t.methodLevel,s=t.methodValue,c=t.val,l=e._logEvent.bindings;r||b(n,e._serialize||Object.keys(e.serializers),e.serializers,e._stdErrSerialize===void 0||e._stdErrSerialize),e._logEvent.ts=a,e._logEvent.messages=n.filter(function(e){return l.indexOf(e)===-1}),e._logEvent.level.label=o,e._logEvent.level.value=s,i(o,e._logEvent,c),e._logEvent=S(l)}function S(e){return{ts:0,messages:[],bindings:e||[],level:{label:``,value:0}}}function C(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 w(e){return typeof e.timestamp==`function`?e.timestamp:e.timestamp===!1?O:k}function T(){return{}}function E(e){return e}function D(){}function O(){return!1}function k(){return Date.now()}function A(){return Math.round(Date.now()/1e3)}function j(){return new Date(Date.now()).toISOString()}function M(){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)||{}}}t.exports.default=f,t.exports.pino=f})),yo=n(),bo=e(ve(),1),xo=e(Be()),B=We(),So=He(),Co=Ve(),wo=pt(),To=e(vo()),Eo={level:`info`},Do=`custom_context`,Oo=1024e3,ko=Object.defineProperty,Ao=(e,t,n)=>t in e?ko(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jo=(e,t,n)=>Ao(e,typeof t==`symbol`?t:t+``,n),Mo=class{constructor(e){jo(this,`nodeValue`),jo(this,`sizeInBytes`),jo(this,`next`),this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}},No=class{constructor(e){jo(this,`lengthInNodes`),jo(this,`sizeInBytes`),jo(this,`head`),jo(this,`tail`),jo(this,`maxSizeInBytes`),this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){let t=new Mo(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}}}}},Po=Object.defineProperty,Fo=(e,t,n)=>t in e?Po(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Io=(e,t,n)=>Fo(e,typeof t==`symbol`?t:t+``,n),Lo=class{constructor(e,t=Oo){Io(this,`logs`),Io(this,`level`),Io(this,`levelValue`),Io(this,`MAX_LOG_SIZE_IN_BYTES`),this.level=e??`error`,this.levelValue=To.levels.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new No(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===To.levels.values.error?console.error(e):t===To.levels.values.warn?console.warn(e):t===To.levels.values.debug?console.debug(e):t===To.levels.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(Ue({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 No(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){let t=this.getLogArray();return t.push(Ue({extraMetadata:e})),new Blob(t,{type:`application/json`})}},Ro=Object.defineProperty,zo=(e,t,n)=>t in e?Ro(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Bo=(e,t,n)=>zo(e,typeof t==`symbol`?t:t+``,n),Vo=class{constructor(e,t=Oo){Bo(this,`baseChunkLogger`),this.baseChunkLogger=new Lo(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)}},Ho=Object.defineProperty,Uo=(e,t,n)=>t in e?Ho(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wo=(e,t,n)=>Uo(e,typeof t==`symbol`?t:t+``,n),Go=class{constructor(e,t=Oo){Wo(this,`baseChunkLogger`),this.baseChunkLogger=new Lo(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)}},Ko=Object.defineProperty,qo=Object.defineProperties,Jo=Object.getOwnPropertyDescriptors,Yo=Object.getOwnPropertySymbols,Xo=Object.prototype.hasOwnProperty,Zo=Object.prototype.propertyIsEnumerable,Qo=(e,t,n)=>t in e?Ko(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$o=(e,t)=>{for(var n in t||={})Xo.call(t,n)&&Qo(e,n,t[n]);if(Yo)for(var n of Yo(t))Zo.call(t,n)&&Qo(e,n,t[n]);return e},es=(e,t)=>qo(e,Jo(t));function ts(e){return es($o({},e),{level:e?.level||Eo.level})}function ns(e,t,n=Do){return e[n]=t,e}function rs(e,t=Do){return e[t]||``}function is(e,t,n=Do){let r=rs(e,n);return r.trim()?`${r}/${t}`:t}function as(e,t,n=Do){let r=is(e,t,n);return ns(e.child({context:r}),r,n)}function os(e){let t=new Vo(e.opts?.level,e.maxSizeInBytes);return{logger:(0,To.default)(es($o({},e.opts),{level:`trace`,browser:es($o({},e.opts?.browser),{write:e=>t.write(e)})})),chunkLoggerController:t}}function ss(e){let t=new Go(e.opts?.level,e.maxSizeInBytes);return{logger:(0,To.default)(es($o({},e.opts),{level:`trace`}),t),chunkLoggerController:t}}function cs(e){return typeof e.loggerOverride<`u`&&typeof e.loggerOverride!=`string`?{logger:e.loggerOverride,chunkLoggerController:null}:typeof window<`u`?os(e):ss(e)}var ls=`:`;function us(e){let[t,n]=e.split(ls);return{namespace:t,reference:n}}function ds(e,t=[]){let n=[];return Object.keys(e).forEach(r=>{if(t.length&&!t.includes(r))return;let i=e[r];n.push(...i.accounts)}),n}function fs(e,t){return e.includes(`:`)?[e]:t.chains||[]}var ps=Object.defineProperty,ms=Object.defineProperties,hs=Object.getOwnPropertyDescriptors,gs=Object.getOwnPropertySymbols,_s=Object.prototype.hasOwnProperty,vs=Object.prototype.propertyIsEnumerable,ys=(e,t,n)=>t in e?ps(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,bs=(e,t)=>{for(var n in t||={})_s.call(t,n)&&ys(e,n,t[n]);if(gs)for(var n of gs(t))vs.call(t,n)&&ys(e,n,t[n]);return e},xs=(e,t)=>ms(e,hs(t)),Ss=(e,t,n)=>ys(e,typeof t==`symbol`?t:t+``,n),Cs={reactNative:`react-native`,node:`node`,browser:`browser`,unknown:`unknown`};function ws(){return typeof process<`u`&&typeof process.versions<`u`&&typeof process.versions.node<`u`}function Ts(){return!(0,So.getDocument)()&&!!(0,So.getNavigator)()&&navigator.product===`ReactNative`}function Es(){return Ts()&&typeof global<`u`&&typeof(global==null?void 0:global.Platform)<`u`&&(global==null?void 0:global.Platform.OS)===`android`}function Ds(){return Ts()&&typeof global<`u`&&typeof(global==null?void 0:global.Platform)<`u`&&(global==null?void 0:global.Platform.OS)===`ios`}function Os(){return!ws()&&!!(0,So.getNavigator)()&&!!(0,So.getDocument)()}function ks(){return Ts()?Cs.reactNative:ws()?Cs.node:Os()?Cs.browser:Cs.unknown}function As(){try{return Ts()&&typeof global<`u`&&typeof(global==null?void 0:global.Application)<`u`?global.Application?.applicationId:void 0}catch{return}}function js(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 Ms(e){var t,n;let r=Ns();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!==``)),xs(bs(bs({},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 Ns(){return(0,Co.getWindowMetadata)()||{name:``,description:``,url:``,icons:[``]}}function Ps(){if(ks()===Cs.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=ze();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 Fs(){let e=ks();return e===Cs.browser?[e,(0,So.getLocation)()?.host||`unknown`].join(`:`):e}function Is(e,t,n){let r=Ps(),i=Fs();return[[e,t].join(`-`),[`js`,n].join(`-`),r,i].join(`/`)}function Ls({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:Is(e,t,r),projectId:a,useOnCloseEvent:o||void 0,packageName:c||void 0,bundleId:s||void 0},d=js(l[1]||``,u);return l[0]+`?`+d}function Rs(e,t){return e.filter(e=>t.includes(e)).length===e.length}function zs(e){return Object.fromEntries(e.entries())}function Bs(e){return new Map(Object.entries(e))}function Vs(e=B.FIVE_MINUTES,t){let n=(0,B.toMiliseconds)(e||B.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 Hs(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 Us(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 Ws(e){return Us(`topic`,e)}function Gs(e){return Us(`id`,e)}function Ks(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 qs(e,t){return(0,B.fromMiliseconds)((t||Date.now())+(0,B.toMiliseconds)(e))}function Js(e){return Date.now()>=(0,B.toMiliseconds)(e)}function V(e,t){return`${e}${t?`:${t}`:``}`}function Ys(e=[],t=[]){return[...new Set([...e,...t])]}async function Xs({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=Zs(i,e,t),o=ks();if(o===Cs.browser){if(!((r=(0,So.getDocument)())!=null&&r.hasFocus())){console.warn(`Document does not have focus, skipping deeplink.`);return}Qs(a)}else o===Cs.reactNative&&typeof(global==null?void 0:global.Linking)<`u`&&await global.Linking.openURL(a)}catch(e){console.error(e)}}function Zs(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}${ac(r,!0)}`}else i=`${i}/wc?${r}`;return i}function Qs(e){let t=`_self`;ic()?t=`_top`:(rc()||e.startsWith(`https://`)||e.startsWith(`http://`))&&(t=`_blank`),window.open(e,t,`noreferrer noopener`)}async function $s(e,t){let n=``;try{if(Os()&&(n=localStorage.getItem(t),n))return n;n=await e.getItem(t)}catch(e){console.error(e)}return n}function ec(e,t){if(!e.includes(t))return null;let n=e.split(/([&,?,=])/);return n[n.indexOf(t)+2]}function tc(){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 nc(){return typeof process<`u`&&{}.IS_VITEST===`true`}function rc(){return typeof window<`u`&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function ic(){try{return window.self!==window.top}catch{return!1}}function ac(e,t=!1){let n=Buffer.from(e).toString(`base64`);return t?n.replace(/[=]/g,``):n}function oc(e){return Buffer.from(e,`base64`).toString(`utf-8`)}function sc(e){return new Promise(t=>setTimeout(t,e))}var cc=class{constructor({limit:e}){Ss(this,`limit`),Ss(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)}},lc=BigInt(2**32-1),uc=BigInt(32);function dc(e,t=!1){return t?{h:Number(e&lc),l:Number(e>>uc&lc)}:{h:Number(e>>uc&lc)|0,l:Number(e&lc)|0}}function fc(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}=dc(e[a],t);[r[a],i[a]]=[n,o]}return[r,i]}var pc=(e,t,n)=>e>>>n,mc=(e,t,n)=>e<<32-n|t>>>n,hc=(e,t,n)=>e>>>n|t<<32-n,gc=(e,t,n)=>e<<32-n|t>>>n,_c=(e,t,n)=>e<<64-n|t>>>n-32,vc=(e,t,n)=>e>>>n-32|t<<64-n,yc=(e,t)=>t,bc=(e,t)=>e,xc=(e,t,n)=>e<<n|t>>>32-n,Sc=(e,t,n)=>t<<n|e>>>32-n,Cc=(e,t,n)=>t<<n-32|e>>>64-n,wc=(e,t,n)=>e<<n-32|t>>>64-n;function Tc(e,t,n,r){let i=(t>>>0)+(r>>>0);return{h:e+n+(i/2**32|0)|0,l:i|0}}var Ec=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),Dc=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,Oc=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),kc=(e,t,n,r,i)=>t+n+r+i+(e/2**32|0)|0,Ac=(e,t,n,r,i)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(i>>>0),jc=(e,t,n,r,i,a)=>t+n+r+i+a+(e/2**32|0)|0,Mc=typeof globalThis==`object`&&`crypto`in globalThis?globalThis.crypto:void 0;function Nc(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function Pc(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function Fc(e,...t){if(!Nc(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 Ic(e){if(typeof e!=`function`||typeof e.create!=`function`)throw Error(`Hash should be wrapped by utils.createHasher`);Pc(e.outputLen),Pc(e.blockLen)}function Lc(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 Rc(e,t){Fc(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function zc(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Bc(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Vc(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Hc(e,t){return e<<32-t|e>>>t}var Uc=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Wc(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}var Gc=Uc?e=>e:e=>Wc(e);function Kc(e){for(let t=0;t<e.length;t++)e[t]=Wc(e[t]);return e}var qc=Uc?e=>e:Kc,Jc=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,Yc=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function Xc(e){if(Fc(e),Jc)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=Yc[e[n]];return t}var Zc={_0:48,_9:57,A:65,F:70,a:97,f:102};function Qc(e){if(e>=Zc._0&&e<=Zc._9)return e-Zc._0;if(e>=Zc.A&&e<=Zc.F)return e-(Zc.A-10);if(e>=Zc.a&&e<=Zc.f)return e-(Zc.a-10)}function $c(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);if(Jc)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=Qc(e.charCodeAt(i)),a=Qc(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 el(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function tl(e){return typeof e==`string`&&(e=el(e)),Fc(e),e}function nl(...e){let t=0;for(let n=0;n<e.length;n++){let r=e[n];Fc(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 rl=class{};function il(e){let t=t=>e().update(tl(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function al(e){let t=(t,n)=>e(n).update(tl(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function ol(e=32){if(Mc&&typeof Mc.getRandomValues==`function`)return Mc.getRandomValues(new Uint8Array(e));if(Mc&&typeof Mc.randomBytes==`function`)return Uint8Array.from(Mc.randomBytes(e));throw Error(`crypto.getRandomValues must be defined`)}var sl=BigInt(0),cl=BigInt(1),ll=BigInt(2),ul=BigInt(7),dl=BigInt(256),fl=BigInt(113),pl=[],ml=[],hl=[];for(let e=0,t=cl,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],pl.push(2*(5*r+n)),ml.push((e+1)*(e+2)/2%64);let i=sl;for(let e=0;e<7;e++)t=(t<<cl^(t>>ul)*fl)%dl,t&ll&&(i^=cl<<(cl<<BigInt(e))-cl);hl.push(i)}var gl=fc(hl,!0),_l=gl[0],vl=gl[1],yl=(e,t,n)=>n>32?Cc(e,t,n):xc(e,t,n),bl=(e,t,n)=>n>32?wc(e,t,n):Sc(e,t,n);function xl(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=yl(a,o,1)^n[r],c=bl(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=ml[n],a=yl(t,i,r),o=bl(t,i,r),s=pl[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]^=_l[r],e[1]^=vl[r]}Bc(n)}var Sl=class e extends rl{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,Pc(n),!(0<e&&e<200))throw Error(`only keccak-f1600 function is supported`);this.state=new Uint8Array(200),this.state32=zc(this.state)}clone(){return this._cloneInto()}keccak(){qc(this.state32),xl(this.state32,this.rounds),qc(this.state32),this.posOut=0,this.pos=0}update(e){Lc(this),e=tl(e),Fc(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){Lc(this,!1),Fc(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 Pc(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Rc(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,Bc(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}},Cl=((e,t,n)=>il(()=>new Sl(t,e,n)))(1,136,32);function wl(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 Tl(e,t,n){return e&t^~e&n}function El(e,t,n){return e&t^e&n^t&n}var Dl=class extends rl{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=Vc(this.buffer)}update(e){Lc(this),e=tl(e),Fc(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=Vc(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){Lc(this),Rc(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:r,isLE:i}=this,{pos:a}=this;t[a++]=128,Bc(this.buffer.subarray(a)),this.padOffset>r-a&&(this.process(n,0),a=0);for(let e=a;e<r;e++)t[e]=0;wl(n,r-8,BigInt(this.length*8),i),this.process(n,0);let o=Vc(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()}},Ol=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),kl=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Al=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),jl=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]),Ml=new Uint32Array(64),Nl=class extends Dl{constructor(e=32){super(64,e,8,!1),this.A=Ol[0]|0,this.B=Ol[1]|0,this.C=Ol[2]|0,this.D=Ol[3]|0,this.E=Ol[4]|0,this.F=Ol[5]|0,this.G=Ol[6]|0,this.H=Ol[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)Ml[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=Ml[e-15],n=Ml[e-2],r=Hc(t,7)^Hc(t,18)^t>>>3,i=Hc(n,17)^Hc(n,19)^n>>>10;Ml[e]=i+Ml[e-7]+r+Ml[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=Hc(o,6)^Hc(o,11)^Hc(o,25),u=l+t+Tl(o,s,c)+jl[e]+Ml[e]|0,d=(Hc(n,2)^Hc(n,13)^Hc(n,22))+El(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(){Bc(Ml)}destroy(){this.set(0,0,0,0,0,0,0,0),Bc(this.buffer)}},Pl=fc(`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))),Fl=Pl[0],Il=Pl[1],Ll=new Uint32Array(80),Rl=new Uint32Array(80),zl=class extends Dl{constructor(e=64){super(128,e,16,!1),this.Ah=Al[0]|0,this.Al=Al[1]|0,this.Bh=Al[2]|0,this.Bl=Al[3]|0,this.Ch=Al[4]|0,this.Cl=Al[5]|0,this.Dh=Al[6]|0,this.Dl=Al[7]|0,this.Eh=Al[8]|0,this.El=Al[9]|0,this.Fh=Al[10]|0,this.Fl=Al[11]|0,this.Gh=Al[12]|0,this.Gl=Al[13]|0,this.Hh=Al[14]|0,this.Hl=Al[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)Ll[n]=e.getUint32(t),Rl[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){let t=Ll[e-15]|0,n=Rl[e-15]|0,r=hc(t,n,1)^hc(t,n,8)^pc(t,n,7),i=gc(t,n,1)^gc(t,n,8)^mc(t,n,7),a=Ll[e-2]|0,o=Rl[e-2]|0,s=hc(a,o,19)^_c(a,o,61)^pc(a,o,6),c=Oc(i,gc(a,o,19)^vc(a,o,61)^mc(a,o,6),Rl[e-7],Rl[e-16]),l=kc(c,r,s,Ll[e-7],Ll[e-16]);Ll[e]=l|0,Rl[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=hc(u,d,14)^hc(u,d,18)^_c(u,d,41),v=gc(u,d,14)^gc(u,d,18)^vc(u,d,41),y=u&f^~u&m,b=d&p^~d&h,x=Ac(_,v,b,Il[e],Rl[e]),S=jc(x,g,t,y,Fl[e],Ll[e]),C=x|0,w=hc(n,r,28)^_c(n,r,34)^_c(n,r,39),T=gc(n,r,28)^vc(n,r,34)^vc(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}=Tc(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=Ec(C,T,D);n=Dc(O,S,w,E),r=O|0}({h:n,l:r}=Tc(this.Ah|0,this.Al|0,n|0,r|0)),{h:i,l:a}=Tc(this.Bh|0,this.Bl|0,i|0,a|0),{h:o,l:s}=Tc(this.Ch|0,this.Cl|0,o|0,s|0),{h:c,l}=Tc(this.Dh|0,this.Dl|0,c|0,l|0),{h:u,l:d}=Tc(this.Eh|0,this.El|0,u|0,d|0),{h:f,l:p}=Tc(this.Fh|0,this.Fl|0,f|0,p|0),{h:m,l:h}=Tc(this.Gh|0,this.Gl|0,m|0,h|0),{h:g,l:_}=Tc(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(){Bc(Ll,Rl)}destroy(){Bc(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Bl=class extends zl{constructor(){super(48),this.Ah=kl[0]|0,this.Al=kl[1]|0,this.Bh=kl[2]|0,this.Bl=kl[3]|0,this.Ch=kl[4]|0,this.Cl=kl[5]|0,this.Dh=kl[6]|0,this.Dl=kl[7]|0,this.Eh=kl[8]|0,this.El=kl[9]|0,this.Fh=kl[10]|0,this.Fl=kl[11]|0,this.Gh=kl[12]|0,this.Gl=kl[13]|0,this.Hh=kl[14]|0,this.Hl=kl[15]|0}},Vl=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]),Hl=class extends zl{constructor(){super(32),this.Ah=Vl[0]|0,this.Al=Vl[1]|0,this.Bh=Vl[2]|0,this.Bl=Vl[3]|0,this.Ch=Vl[4]|0,this.Cl=Vl[5]|0,this.Dh=Vl[6]|0,this.Dl=Vl[7]|0,this.Eh=Vl[8]|0,this.El=Vl[9]|0,this.Fh=Vl[10]|0,this.Fl=Vl[11]|0,this.Gh=Vl[12]|0,this.Gl=Vl[13]|0,this.Hh=Vl[14]|0,this.Hl=Vl[15]|0}},Ul=il(()=>new Nl),Wl=il(()=>new zl),Gl=il(()=>new Bl),Kl=il(()=>new Hl),ql=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]),Jl=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),H=new Uint32Array(32);function Yl(e,t,n,r,i,a){let o=i[a],s=i[a+1],c=H[2*e],l=H[2*e+1],u=H[2*t],d=H[2*t+1],f=H[2*n],p=H[2*n+1],m=H[2*r],h=H[2*r+1],g=Ec(c,u,o);l=Dc(g,l,d,s),c=g|0,{Dh:h,Dl:m}={Dh:h^l,Dl:m^c},{Dh:h,Dl:m}={Dh:yc(h,m),Dl:bc(h)},{h:p,l:f}=Tc(p,f,h,m),{Bh:d,Bl:u}={Bh:d^p,Bl:u^f},{Bh:d,Bl:u}={Bh:hc(d,u,24),Bl:gc(d,u,24)},H[2*e]=c,H[2*e+1]=l,H[2*t]=u,H[2*t+1]=d,H[2*n]=f,H[2*n+1]=p,H[2*r]=m,H[2*r+1]=h}function Xl(e,t,n,r,i,a){let o=i[a],s=i[a+1],c=H[2*e],l=H[2*e+1],u=H[2*t],d=H[2*t+1],f=H[2*n],p=H[2*n+1],m=H[2*r],h=H[2*r+1],g=Ec(c,u,o);l=Dc(g,l,d,s),c=g|0,{Dh:h,Dl:m}={Dh:h^l,Dl:m^c},{Dh:h,Dl:m}={Dh:hc(h,m,16),Dl:gc(h,m,16)},{h:p,l:f}=Tc(p,f,h,m),{Bh:d,Bl:u}={Bh:d^p,Bl:u^f},{Bh:d,Bl:u}={Bh:_c(d,u,63),Bl:vc(d,u,63)},H[2*e]=c,H[2*e+1]=l,H[2*t]=u,H[2*t+1]=d,H[2*n]=f,H[2*n+1]=p,H[2*r]=m,H[2*r+1]=h}function Zl(e,t={},n,r,i){if(Pc(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 Ql=class extends rl{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,Pc(e),Pc(t),this.blockLen=e,this.outputLen=t,this.buffer=new Uint8Array(e),this.buffer32=zc(this.buffer)}update(e){Lc(this),e=tl(e),Fc(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&&(qc(r),this.compress(r,0,!1),qc(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));qc(e);for(let n=0;s+t<i;n+=r.length,s+=t)this.length+=t,this.compress(e,n,!1);qc(e);continue}n.set(e.subarray(s,s+c),this.pos),this.pos+=c,this.length+=c,s+=c}return this}digestInto(e){Lc(this),Rc(e,this);let{pos:t,buffer32:n}=this;this.finished=!0,Bc(this.buffer.subarray(t)),qc(n),this.compress(n,0,!0),qc(n);let r=zc(e);this.get().forEach((e,t)=>r[t]=Gc(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()}},$l=class extends Ql{constructor(e={}){let t=e.dkLen===void 0?64:e.dkLen;super(128,t),this.v0l=Jl[0]|0,this.v0h=Jl[1]|0,this.v1l=Jl[2]|0,this.v1h=Jl[3]|0,this.v2l=Jl[4]|0,this.v2h=Jl[5]|0,this.v3l=Jl[6]|0,this.v3h=Jl[7]|0,this.v4l=Jl[8]|0,this.v4h=Jl[9]|0,this.v5l=Jl[10]|0,this.v5h=Jl[11]|0,this.v6l=Jl[12]|0,this.v6h=Jl[13]|0,this.v7l=Jl[14]|0,this.v7h=Jl[15]|0,Zl(t,e,64,16,16);let{key:n,personalization:r,salt:i}=e,a=0;if(n!==void 0&&(n=tl(n),a=n.length),this.v0l^=this.outputLen|a<<8|16842752,i!==void 0){i=tl(i);let e=zc(i);this.v4l^=Gc(e[0]),this.v4h^=Gc(e[1]),this.v5l^=Gc(e[2]),this.v5h^=Gc(e[3])}if(r!==void 0){r=tl(r);let e=zc(r);this.v6l^=Gc(e[0]),this.v6h^=Gc(e[1]),this.v7l^=Gc(e[2]),this.v7h^=Gc(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)=>H[t]=e),H.set(Jl,16);let{h:r,l:i}=dc(BigInt(this.length));H[24]=Jl[8]^i,H[25]=Jl[9]^r,n&&(H[28]=~H[28],H[29]=~H[29]);let a=0,o=ql;for(let n=0;n<12;n++)Yl(0,4,8,12,e,t+2*o[a++]),Xl(0,4,8,12,e,t+2*o[a++]),Yl(1,5,9,13,e,t+2*o[a++]),Xl(1,5,9,13,e,t+2*o[a++]),Yl(2,6,10,14,e,t+2*o[a++]),Xl(2,6,10,14,e,t+2*o[a++]),Yl(3,7,11,15,e,t+2*o[a++]),Xl(3,7,11,15,e,t+2*o[a++]),Yl(0,5,10,15,e,t+2*o[a++]),Xl(0,5,10,15,e,t+2*o[a++]),Yl(1,6,11,12,e,t+2*o[a++]),Xl(1,6,11,12,e,t+2*o[a++]),Yl(2,7,8,13,e,t+2*o[a++]),Xl(2,7,8,13,e,t+2*o[a++]),Yl(3,4,9,14,e,t+2*o[a++]),Xl(3,4,9,14,e,t+2*o[a++]);this.v0l^=H[0]^H[16],this.v0h^=H[1]^H[17],this.v1l^=H[2]^H[18],this.v1h^=H[3]^H[19],this.v2l^=H[4]^H[20],this.v2h^=H[5]^H[21],this.v3l^=H[6]^H[22],this.v3h^=H[7]^H[23],this.v4l^=H[8]^H[24],this.v4h^=H[9]^H[25],this.v5l^=H[10]^H[26],this.v5h^=H[11]^H[27],this.v6l^=H[12]^H[28],this.v6h^=H[13]^H[29],this.v7l^=H[14]^H[30],this.v7h^=H[15]^H[31],Bc(H)}destroy(){this.destroyed=!0,Bc(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},eu=al(e=>new $l(e)),tu=`https://rpc.walletconnect.org/v1`;function nu(e){let t=`Ethereum Signed Message:
|
|
6
|
+
${e.length}`,n=new TextEncoder().encode(t+e);return`0x`+Buffer.from(Cl(n)).toString(`hex`)}async function ru(e,t,n,r,i,a){switch(n.t){case`eip191`:return await iu(e,t,n.s);case`eip1271`:return await au(e,t,n.s,r,i,a);default:throw Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${n.t}`)}}function iu(e,t,n){let r=uo(n);return go({payload:nu(t),signature:r}).toLowerCase()===e.toLowerCase()}async function au(e,t,n,r,i,a){let o=us(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:nu(t)).substring(2)+`0000000000000000000000000000000000000000000000000000000000000040`+s+o,{result:l}=await(await fetch(`${a||tu}/?chainId=${r}&projectId=${i}`,{headers:{"Content-Type":`application/json`},method:`POST`,body:JSON.stringify({id:ou(),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 ou(){return Date.now()+Math.floor(Math.random()*1e3)}function su(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 nt.encode(a)}function cu(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=eu(r,{dkLen:32});return nt.encode(i)}function lu(e){let t=new Uint8Array(Ul(uu(e)));return nt.encode(t)}function uu(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 du(e){let t=Buffer.from(e,`base64`),n=rt(t).txn;if(!n)throw Error(`Invalid signed transaction: missing 'txn' field`);let r=Fe(n),i=Buffer.from(`TX`),a=Kl(Buffer.concat([i,Buffer.from(r)]));return ae.encode(a).replace(/=+$/,``)}function fu(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 pu(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(fu(t.length)),i.push(t),i.push(Buffer.from([18])),i.push(fu(n.length)),i.push(n),i.push(Buffer.from([26])),i.push(fu(r.length)),i.push(r);let a=Ul(Buffer.concat(i));return Buffer.from(a).toString(`hex`).toUpperCase()}function mu(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 hu=Object.defineProperty,gu=Object.defineProperties,_u=Object.getOwnPropertyDescriptors,vu=Object.getOwnPropertySymbols,yu=Object.prototype.hasOwnProperty,bu=Object.prototype.propertyIsEnumerable,xu=(e,t,n)=>t in e?hu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Su=(e,t)=>{for(var n in t||={})yu.call(t,n)&&xu(e,n,t[n]);if(vu)for(var n of vu(t))bu.call(t,n)&&xu(e,n,t[n]);return e},Cu=(e,t)=>gu(e,_u(t)),wu=`did:pkh:`,Tu=e=>e?.split(`:`),Eu=e=>{let t=e&&Tu(e);if(t)return e.includes(wu)?t[3]:t[1]},Du=e=>{let t=e&&Tu(e);if(t)return t[2]+`:`+t[3]},Ou=e=>{let t=e&&Tu(e);if(t)return t.pop()};async function ku(e){let{cacao:t,projectId:n}=e,{s:r,p:i}=t,a=Au(i,i.iss);return await ru(Ou(i.iss),a,r,Du(i.iss),n)}var Au=(e,t)=>{let n=`${e.domain} wants you to sign in with your Ethereum account:`,r=Ou(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: ${Eu(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=>`
|
|
7
|
+
- ${e}`).join(``)}`:void 0,m=Gu(e.resources);if(m){let e=Lu(m);i=Hu(i,e)}return[n,r,``,i,``,a,o,s,c,l,u,d,f,p].filter(e=>e!=null).join(`
|
|
8
|
+
`)};function ju(e){return Buffer.from(JSON.stringify(e)).toString(`base64`)}function Mu(e){return JSON.parse(Buffer.from(e,`base64`).toString(`utf-8`))}function Nu(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 Pu(e,t,n,r={}){return n?.sort((e,t)=>e.localeCompare(t)),{att:{[e]:Fu(t,n,r)}}}function Fu(e,t,n={}){t=t?.sort((e,t)=>e.localeCompare(t));let r=t.map(t=>({[`${e}/${t}`]:[n]}));return Object.assign({},...r)}function Iu(e){return Nu(e),`urn:recap:${ju(e).replace(/=/g,``)}`}function Lu(e){let t=Mu(e.replace(`urn:recap:`,``));return Nu(t),t}function Ru(e,t,n){return Iu(Pu(e,t,n))}function zu(e){return e&&e.includes(`urn:recap:`)}function Bu(e,t){return Iu(Vu(Lu(e),Lu(t)))}function Vu(e,t){Nu(e),Nu(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]=Cu(Su({},r.att[n]),{[i]:e.att[n]?.[i]||t.att[n]?.[i]})})}),r}function Hu(e=``,t){Nu(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 Uu(e){let t=Lu(e);Nu(t);let n=t.att?.eip155;return n?Object.keys(n).map(e=>e.split(`/`)[1]):[]}function Wu(e){let t=Lu(e);Nu(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 Gu(e){if(!e)return;let t=e?.[e.length-1];return zu(t)?t:void 0}function Ku(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function qu(e){if(typeof e!=`boolean`)throw Error(`boolean expected, not ${e}`)}function Ju(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function Yu(e,...t){if(!Ku(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 Xu(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 Zu(e,t){Yu(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function Qu(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function $u(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function ed(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}var td=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function nd(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function rd(e){if(typeof e==`string`)e=nd(e);else if(Ku(e))e=dd(e);else throw Error(`Uint8Array expected, got `+typeof e);return e}function id(e,t){if(typeof t!=`object`||!t)throw Error(`options must be defined`);return Object.assign(e,t)}function ad(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 od=(e,t)=>{function n(n,...r){if(Yu(n),!td)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?Yu(t):Yu(t,e.nonceLength)}let i=e.tagLength;i&&r[1]!==void 0&&Yu(r[1]);let a=t(n,...r),o=(e,t)=>{if(t!==void 0){if(e!==2)throw Error(`cipher output not supported`);Yu(t)}},s=!1;return{encrypt(e,t){if(s)throw Error(`cannot encrypt() twice with same key + nonce`);return s=!0,Yu(e),o(a.encrypt.length,t),a.encrypt(e,t)},decrypt(e,t){if(Yu(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 sd(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&&!ud(t))throw Error(`invalid output, must be aligned`);return t}function cd(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 ld(e,t,n){qu(n);let r=new Uint8Array(16),i=ed(r);return cd(i,0,BigInt(t),n),cd(i,8,BigInt(e),n),r}function ud(e){return e.byteOffset%4==0}function dd(e){return Uint8Array.from(e)}var fd=e=>Uint8Array.from(e.split(``).map(e=>e.charCodeAt(0))),pd=fd(`expand 16-byte k`),md=fd(`expand 32-byte k`),hd=Qu(pd),gd=Qu(md);function U(e,t){return e<<t|e>>>32-t}function _d(e){return e.byteOffset%4==0}var vd=64,yd=16,bd=2**32-1,xd=new Uint32Array;function Sd(e,t,n,r,i,a,o,s){let c=i.length,l=new Uint8Array(vd),u=Qu(l),d=_d(i)&&_d(a),f=d?Qu(i):xd,p=d?Qu(a):xd;for(let m=0;m<c;o++){if(e(t,n,r,u,o,s),o>=bd)throw Error(`arx: counter overflow`);let h=Math.min(vd,c-m);if(d&&h===vd){let e=m/4;if(m%4!=0)throw Error(`arx: invalid block position`);for(let t=0,n;t<yd;t++)n=e+t,p[n]=f[n]^u[t];m+=vd;continue}for(let e=0,t;e<h;e++)t=m+e,a[t]=i[t]^l[e];m+=h}}function Cd(e,t){let{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:a,rounds:o}=id({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!=`function`)throw Error(`core must be a function`);return Ju(i),Ju(o),qu(a),qu(n),(t,s,c,l,u=0)=>{Yu(t),Yu(s),Yu(c);let d=c.length;if(l===void 0&&(l=new Uint8Array(d)),Yu(l),Ju(u),u<0||u>=bd)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=dd(t)),h=gd;else if(p===16&&n)m=new Uint8Array(32),m.set(t),m.set(t,16),h=hd,f.push(m);else throw Error(`arx: invalid 32-byte key, got length=${p}`);_d(s)||f.push(s=dd(s));let g=Qu(m);if(r){if(s.length!==24)throw Error(`arx: extended nonce must be 24 bytes`);r(h,g,Qu(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=Qu(s);return Sd(e,h,g,v,c,l,u,o),$u(...f),l}}var wd=(e,t)=>e[t++]&255|(e[t++]&255)<<8,Td=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=rd(e),Yu(e,32);let t=wd(e,0),n=wd(e,2),r=wd(e,4),i=wd(e,6),a=wd(e,8),o=wd(e,10),s=wd(e,12),c=wd(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]=wd(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=wd(e,t+0),_=wd(e,t+2),v=wd(e,t+4),y=wd(e,t+6),b=wd(e,t+8),x=wd(e,t+10),S=wd(e,t+12),C=wd(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,ee=P+w*o+5*h*T+5*m*E+5*p*D+5*f*O;P=ee>>>13,ee&=8191,ee+=5*d*k+5*u*A+5*l*j+5*c*M+5*s*N,P+=ee>>>13,ee&=8191;let te=P+w*s+T*o+5*h*E+5*m*D+5*p*O;P=te>>>13,te&=8191,te+=5*f*k+5*d*A+5*u*j+5*l*M+5*c*N,P+=te>>>13,te&=8191;let F=P+w*c+T*s+E*o+5*h*D+5*m*O;P=F>>>13,F&=8191,F+=5*p*k+5*f*A+5*d*j+5*u*M+5*l*N,P+=F>>>13,F&=8191;let ne=P+w*l+T*c+E*s+D*o+5*h*O;P=ne>>>13,ne&=8191,ne+=5*m*k+5*p*A+5*f*j+5*d*M+5*u*N,P+=ne>>>13,ne&=8191;let re=P+w*u+T*l+E*c+D*s+O*o;P=re>>>13,re&=8191,re+=5*h*k+5*m*A+5*p*j+5*f*M+5*d*N,P+=re>>>13,re&=8191;let ie=P+w*d+T*u+E*l+D*c+O*s;P=ie>>>13,ie&=8191,ie+=k*o+5*h*A+5*m*j+5*p*M+5*f*N,P+=ie>>>13,ie&=8191;let ae=P+w*f+T*d+E*u+D*l+O*c;P=ae>>>13,ae&=8191,ae+=k*s+A*o+5*h*j+5*m*M+5*p*N,P+=ae>>>13,ae&=8191;let oe=P+w*p+T*f+E*d+D*u+O*l;P=oe>>>13,oe&=8191,oe+=k*c+A*s+j*o+5*h*M+5*m*N,P+=oe>>>13,oe&=8191;let se=P+w*m+T*p+E*f+D*d+O*u;P=se>>>13,se&=8191,se+=k*l+A*c+j*s+M*o+5*h*N,P+=se>>>13,se&=8191;let ce=P+w*h+T*m+E*p+D*f+O*d;P=ce>>>13,ce&=8191,ce+=k*u+A*l+j*c+M*s+N*o,P+=ce>>>13,ce&=8191,P=(P<<2)+P|0,P=P+ee|0,ee=P&8191,P>>>=13,te+=P,i[0]=ee,i[1]=te,i[2]=F,i[3]=ne,i[4]=re,i[5]=ie,i[6]=ae,i[7]=oe,i[8]=se,i[9]=ce}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;$u(n)}update(e){Xu(this),e=rd(e),Yu(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(){$u(this.h,this.r,this.buffer,this.pad)}digestInto(e){Xu(this),Zu(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 Ed(e){let t=(t,n)=>e(n).update(rd(t)).digest(),n=e(new Uint8Array(32));return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}var Dd=Ed(e=>new Td(e));function Od(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,ee=y,te=b,F=x;for(let e=0;e<a;e+=2)S=S+E|0,P=U(P^S,16),A=A+P|0,E=U(E^A,12),S=S+E|0,P=U(P^S,8),A=A+P|0,E=U(E^A,7),C=C+D|0,ee=U(ee^C,16),j=j+ee|0,D=U(D^j,12),C=C+D|0,ee=U(ee^C,8),j=j+ee|0,D=U(D^j,7),w=w+O|0,te=U(te^w,16),M=M+te|0,O=U(O^M,12),w=w+O|0,te=U(te^w,8),M=M+te|0,O=U(O^M,7),T=T+k|0,F=U(F^T,16),N=N+F|0,k=U(k^N,12),T=T+k|0,F=U(F^T,8),N=N+F|0,k=U(k^N,7),S=S+D|0,F=U(F^S,16),M=M+F|0,D=U(D^M,12),S=S+D|0,F=U(F^S,8),M=M+F|0,D=U(D^M,7),C=C+O|0,P=U(P^C,16),N=N+P|0,O=U(O^N,12),C=C+O|0,P=U(P^C,8),N=N+P|0,O=U(O^N,7),w=w+k|0,ee=U(ee^w,16),A=A+ee|0,k=U(k^A,12),w=w+k|0,ee=U(ee^w,8),A=A+ee|0,k=U(k^A,7),T=T+E|0,te=U(te^T,16),j=j+te|0,E=U(E^j,12),T=T+E|0,te=U(te^T,8),j=j+te|0,E=U(E^j,7);let ne=0;r[ne++]=o+S|0,r[ne++]=s+C|0,r[ne++]=c+w|0,r[ne++]=l+T|0,r[ne++]=u+E|0,r[ne++]=d+D|0,r[ne++]=f+O|0,r[ne++]=p+k|0,r[ne++]=m+A|0,r[ne++]=h+j|0,r[ne++]=g+M|0,r[ne++]=_+N|0,r[ne++]=v+P|0,r[ne++]=y+ee|0,r[ne++]=b+te|0,r[ne++]=x+F|0}var kd=Cd(Od,{counterRight:!1,counterLength:4,allowShortKeys:!1}),Ad=new Uint8Array(16),jd=(e,t)=>{e.update(t);let n=t.length%16;n&&e.update(Ad.subarray(n))},Md=new Uint8Array(32);function Nd(e,t,n,r,i){let a=e(t,n,Md),o=Dd.create(a);i&&jd(o,i),jd(o,r);let s=ld(r.length,i?i.length:0,!0);o.update(s);let c=o.digest();return $u(a,s),c}var Pd=od({blockSize:64,nonceLength:12,tagLength:16},(e=>(t,n,r)=>({encrypt(i,a){let o=i.length;a=sd(o+16,a,!1),a.set(i);let s=a.subarray(0,-16);e(t,n,s,s,1);let c=Nd(e,t,n,s,r);return a.set(c,o),$u(c),a},decrypt(i,a){a=sd(i.length-16,a,!1);let o=i.subarray(0,-16),s=i.subarray(-16),c=Nd(e,t,n,o,r);if(!ad(s,c))throw Error(`invalid tag`);return a.set(i.subarray(0,-16)),e(t,n,a,a,1),$u(c),a}}))(kd)),Fd=class extends rl{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,Ic(e);let n=tl(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),Bc(i)}update(e){return Lc(this),this.iHash.update(e),this}digestInto(e){Lc(this),Fc(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()}},Id=(e,t,n)=>new Fd(e,t).update(n).digest();Id.create=(e,t)=>new Fd(e,t);function Ld(e,t,n){return Ic(e),n===void 0&&(n=new Uint8Array(e.outputLen)),Id(e,tl(n),tl(t))}var Rd=Uint8Array.from([0]),zd=Uint8Array.of();function Bd(e,t,n,r=32){Ic(e),Pc(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=zd);let o=new Uint8Array(a*i),s=Id.create(e,t),c=s._cloneInto(),l=new Uint8Array(s.outputLen);for(let e=0;e<a;e++)Rd[0]=e+1,c.update(e===0?zd:l).update(n).update(Rd).digestInto(l),o.set(l,i*e),s._cloneInto(c);return s.destroy(),c.destroy(),Bc(l,Rd),o.slice(0,r)}var Vd=(e,t,n,r,i)=>Bd(e,Ld(e,t,n),r,i),Hd=Ul,Ud=BigInt(0),Wd=BigInt(1);function Gd(e,t=``){if(typeof e!=`boolean`){let n=t&&`"${t}"`;throw Error(n+`expected boolean, got type=`+typeof e)}return e}function Kd(e,t,n=``){let r=Nc(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 qd(e){let t=e.toString(16);return t.length&1?`0`+t:t}function Jd(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);return e===``?Ud:BigInt(`0x`+e)}function Yd(e){return Jd(Xc(e))}function Xd(e){return Fc(e),Jd(Xc(Uint8Array.from(e).reverse()))}function Zd(e,t){return $c(e.toString(16).padStart(t*2,`0`))}function Qd(e,t){return Zd(e,t).reverse()}function $d(e,t,n){let r;if(typeof t==`string`)try{r=$c(t)}catch(t){throw Error(e+` must be hex string or Uint8Array, cause: `+t)}else if(Nc(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 ef=e=>typeof e==`bigint`&&Ud<=e;function tf(e,t,n){return ef(e)&&ef(t)&&ef(n)&&t<=e&&e<n}function nf(e,t,n,r){if(!tf(t,n,r))throw Error(`expected valid `+e+`: `+n+` <= n < `+r+`, got `+t)}function rf(e){let t=0;for(;e>Ud;e>>=Wd,t+=1);return t}var af=e=>(Wd<<BigInt(e))-Wd;function of(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 nl(...n)};return(e,t)=>{c(),u(e);let n;for(;!(n=t(d()));)u();return c(),n}}function sf(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 cf(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 lf=BigInt(0),uf=BigInt(1),df=BigInt(2),ff=BigInt(3),pf=BigInt(4),mf=BigInt(5),hf=BigInt(7),gf=BigInt(8),_f=BigInt(9),vf=BigInt(16);function yf(e,t){let n=e%t;return n>=lf?n:t+n}function bf(e,t,n){let r=e;for(;t-->lf;)r*=r,r%=n;return r}function xf(e,t){if(e===lf)throw Error(`invert: expected non-zero number`);if(t<=lf)throw Error(`invert: expected positive modulus, got `+t);let n=yf(e,t),r=t,i=lf,a=uf;for(;n!==lf;){let e=r/n,t=r%n,o=i-a*e;r=n,n=t,i=a,a=o}if(r!==uf)throw Error(`invert: does not exist`);return yf(i,t)}function Sf(e,t,n){if(!e.eql(e.sqr(t),n))throw Error(`Cannot find square root`)}function Cf(e,t){let n=(e.ORDER+uf)/pf,r=e.pow(t,n);return Sf(e,r,t),r}function wf(e,t){let n=(e.ORDER-mf)/gf,r=e.mul(t,df),i=e.pow(r,n),a=e.mul(t,i),o=e.mul(e.mul(a,df),i),s=e.mul(a,e.sub(o,e.ONE));return Sf(e,s,t),s}function Tf(e){let t=Pf(e),n=Ef(e),r=n(t,t.neg(t.ONE)),i=n(t,r),a=n(t,t.neg(r)),o=(e+hf)/vf;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 Sf(e,p,t),p}}function Ef(e){if(e<ff)throw Error(`sqrt is not defined for small field`);let t=e-uf,n=0;for(;t%df===lf;)t/=df,n++;let r=df,i=Pf(e);for(;Mf(i,r)===1;)if(r++>1e3)throw Error(`Cannot find square root: probably non-prime P`);if(n===1)return Cf;let a=i.pow(r,t),o=(t+uf)/df;return function(e,r){if(e.is0(r))return r;if(Mf(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=uf<<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 Df(e){return e%pf===ff?Cf:e%gf===mf?wf:e%vf===_f?Tf(e):Ef(e)}var Of=[`create`,`isValid`,`is0`,`neg`,`inv`,`sqrt`,`sqr`,`eql`,`add`,`sub`,`mul`,`pow`,`div`,`addN`,`subN`,`mulN`,`sqrN`];function kf(e){return sf(e,Of.reduce((e,t)=>(e[t]=`function`,e),{ORDER:`bigint`,MASK:`bigint`,BYTES:`number`,BITS:`number`})),e}function Af(e,t,n){if(n<lf)throw Error(`invalid exponent, negatives unsupported`);if(n===lf)return e.ONE;if(n===uf)return t;let r=e.ONE,i=t;for(;n>lf;)n&uf&&(r=e.mul(r,i)),i=e.sqr(i),n>>=uf;return r}function jf(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 Mf(e,t){let n=(e.ORDER-uf)/df,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 Nf(e,t){t!==void 0&&Pc(t);let n=t===void 0?e.toString(2).length:t;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function Pf(e,t,n=!1,r={}){if(e<=lf)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}=Nf(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:af(c),ZERO:lf,ONE:uf,allowedLengths:s,create:t=>yf(t,e),isValid:t=>{if(typeof t!=`bigint`)throw Error(`invalid field element: expected bigint, got `+typeof t);return lf<=t&&t<e},is0:e=>e===lf,isValidNot0:e=>!d.is0(e)&&d.isValid(e),isOdd:e=>(e&uf)===uf,neg:t=>yf(-t,e),eql:(e,t)=>e===t,sqr:t=>yf(t*t,e),add:(t,n)=>yf(t+n,e),sub:(t,n)=>yf(t-n,e),mul:(t,n)=>yf(t*n,e),pow:(e,t)=>Af(d,e,t),div:(t,n)=>yf(t*xf(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>xf(t,e),sqrt:a||(t=>(u||=Df(e),u(d,t))),toBytes:e=>n?Qd(e,l):Zd(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?Xd(t):Yd(t);if(o&&(i=yf(i,e)),!r&&!d.isValid(i))throw Error(`invalid field element: outside of range 0..ORDER`);return i},invertBatch:e=>jf(d,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(d)}function Ff(e){if(typeof e!=`bigint`)throw Error(`field order must be bigint`);let t=e.toString(2).length;return Math.ceil(t/8)}function If(e){let t=Ff(e);return t+Math.ceil(t/2)}function Lf(e,t,n=!1){let r=e.length,i=Ff(t),a=If(t);if(r<16||r<a||r>1024)throw Error(`expected `+a+`-1024 bytes of input, got `+r);let o=yf(n?Xd(e):Yd(e),t-uf)+uf;return n?Qd(o,i):Zd(o,i)}var Rf=BigInt(0),zf=BigInt(1);function Bf(e,t){let n=t.negate();return e?n:t}function Vf(e,t){let n=jf(e.Fp,t.map(e=>e.Z));return t.map((t,r)=>e.fromAffine(t.toAffine(n[r])))}function Hf(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw Error(`invalid window size, expected [1..`+t+`], got W=`+e)}function Uf(e,t){Hf(e,t);let n=Math.ceil(t/e)+1,r=2**(e-1),i=2**e;return{windows:n,windowSize:r,mask:af(e),maxNumber:i,shiftBy:BigInt(e)}}function Wf(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+=zf);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 Gf(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 Kf(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 qf=new WeakMap,Jf=new WeakMap;function Yf(e){return Jf.get(e)||1}function Xf(e){if(e!==Rf)throw Error(`invalid wNAF`)}var Zf=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>Rf;)t&zf&&(n=n.add(r)),r=r.double(),t>>=zf;return n}precomputeWindow(e,t){let{windows:n,windowSize:r}=Uf(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=Uf(e,this.bits);for(let e=0;e<a.windows;e++){let{nextN:o,offset:s,isZero:c,isNeg:l,isNegF:u,offsetF:d}=Wf(n,e,a);n=o,c?i=i.add(Bf(u,t[d])):r=r.add(Bf(l,t[s]))}return Xf(n),{p:r,f:i}}wNAFUnsafe(e,t,n,r=this.ZERO){let i=Uf(e,this.bits);for(let e=0;e<i.windows&&n!==Rf;e++){let{nextN:a,offset:o,isZero:s,isNeg:c}=Wf(n,e,i);if(n=a,!s){let e=t[o];r=r.add(c?e.negate():e)}}return Xf(n),r}getPrecomputes(e,t,n){let r=qf.get(t);return r||(r=this.precomputeWindow(t,e),e!==1&&(typeof n==`function`&&(r=n(r)),qf.set(t,r))),r}cached(e,t,n){let r=Yf(e);return this.wNAF(r,this.getPrecomputes(r,e,n),t)}unsafe(e,t,n,r){let i=Yf(e);return i===1?this._unsafeLadder(e,t,r):this.wNAFUnsafe(i,this.getPrecomputes(i,e,n),t,r)}createCache(e,t){Hf(t,this.bits),Jf.set(e,t),qf.delete(e)}hasCache(e){return Yf(e)!==1}};function Qf(e,t,n,r){let i=t,a=e.ZERO,o=e.ZERO;for(;n>Rf||r>Rf;)n&zf&&(a=a.add(i)),r&zf&&(o=o.add(i)),i=i.double(),n>>=zf,r>>=zf;return{p1:a,p2:o}}function $f(e,t,n,r){Gf(n,e),Kf(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=rf(BigInt(i)),c=1;s>12?c=s-3:s>4?c=s-2:s>0&&(c=2);let l=af(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 ep(e,t,n){if(t){if(t.ORDER!==e)throw Error(`Field.ORDER must match order: Fp == p, Fn == n`);return kf(t),t}return Pf(e,{isLE:n})}function tp(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>Rf))throw Error(`CURVE.${e} must be positive bigint`)}let i=ep(t.p,n.Fp,r),a=ep(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}}el(`HashToScalar-`);var np=BigInt(0),rp=BigInt(1),ip=BigInt(2);function ap(e){return sf(e,{adjustScalarBytes:`function`,powPminus2:`function`}),Object.freeze({...e})}function op(e){let{P:t,type:n,adjustScalarBytes:r,powPminus2:i,randomBytes:a}=ap(e),o=n===`x25519`;if(!o&&n!==`x448`)throw Error(`invalid type`);let s=a||ol,c=o?255:448,l=o?32:56,u=BigInt(o?9:5),d=BigInt(o?121665:39081),f=o?ip**BigInt(254):ip**BigInt(447),p=f+(o?BigInt(8)*ip**BigInt(251)-rp:BigInt(4)*ip**BigInt(445)-rp)+rp,m=e=>yf(e,t),h=g(u);function g(e){return Qd(m(e),l)}function _(e){let t=$d(`u coordinate`,e,l);return o&&(t[31]&=127),m(Xd(t))}function v(e){return Xd(r($d(`scalar`,e,l)))}function y(e,t){let n=S(_(t),v(e));if(n===np)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){nf(`u`,e,np,t),nf(`scalar`,n,f,p);let r=n,a=e,o=rp,s=np,l=e,u=rp,h=np;for(let e=BigInt(c-1);e>=np;e--){let t=r>>e&rp;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))=>(Fc(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 sp=BigInt(1),cp=BigInt(2),lp=BigInt(3),up=BigInt(5),dp=BigInt(8),fp=BigInt(`0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed`),pp={p:fp,n:BigInt(`0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed`),h:dp,a:BigInt(`0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec`),d:BigInt(`0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3`),Gx:BigInt(`0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a`),Gy:BigInt(`0x6666666666666666666666666666666666666666666666666666666666666658`)};function mp(e){let t=BigInt(10),n=BigInt(20),r=BigInt(40),i=BigInt(80),a=fp,o=e*e%a*e%a,s=bf(bf(o,cp,a)*o%a,sp,a)*e%a,c=bf(s,up,a)*s%a,l=bf(c,t,a)*c%a,u=bf(l,n,a)*l%a,d=bf(u,r,a)*u%a;return{pow_p_5_8:bf(bf(bf(bf(d,i,a)*d%a,i,a)*d%a,t,a)*c%a,cp,a)*e%a,b2:o}}function hp(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}var gp=Pf(pp.p,{isLE:!0}),_p=(()=>{let e=gp.ORDER;return op({P:e,type:`x25519`,powPminus2:t=>{let{pow_p_5_8:n,b2:r}=mp(t);return yf(bf(n,lp,e)*r,e)},adjustScalarBytes:hp})})(),vp=(e,t)=>(e+(e>=0?t:-t)/Tp)/t;function yp(e,t,n){let[[r,i],[a,o]]=t,s=vp(o*e,n),c=vp(-i*e,n),l=e-s*r-c*a,u=-s*i-c*o,d=l<Cp,f=u<Cp;d&&(l=-l),f&&(u=-u);let p=af(Math.ceil(rf(n)/2))+wp;if(l<Cp||l>=p||u<Cp||u>=p)throw Error(`splitScalar (endomorphism): failed, k=`+e);return{k1neg:d,k1:l,k2neg:f,k2:u}}function bp(e){if(![`compact`,`recovered`,`der`].includes(e))throw Error(`Signature format must be "compact", "recovered", or "der"`);return e}function xp(e,t){let n={};for(let r of Object.keys(t))n[r]=e[r]===void 0?t[r]:e[r];return Gd(n.lowS,`lowS`),Gd(n.prehash,`prehash`),n.format!==void 0&&bp(n.format),n}var Sp={Err:class extends Error{constructor(e=``){super(e)}},_tlv:{encode:(e,t)=>{let{Err:n}=Sp;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=qd(r);if(i.length/2&128)throw new n(`tlv.encode: long form length too big`);let a=r>127?qd(i.length/2|128):``;return qd(e)+a+i+t},decode(e,t){let{Err:n}=Sp,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}=Sp;if(e<Cp)throw new t(`integer: negative integers are not allowed`);let n=qd(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}=Sp;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 Yd(e)}},toSig(e){let{Err:t,_int:n,_tlv:r}=Sp,i=$d(`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}=Sp,r=t.encode(2,n.encode(e.r))+t.encode(2,n.encode(e.s));return t.encode(48,r)}},Cp=BigInt(0),wp=BigInt(1),Tp=BigInt(2),Ep=BigInt(3),Dp=BigInt(4);function Op(e,t){let{BYTES:n}=e,r;if(typeof t==`bigint`)r=t;else{let i=$d(`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 kp(e,t={}){let n=tp(`weierstrass`,e,t),{Fp:r,Fn:i}=n,a=n.CURVE,{h:o,n:s}=a;sf(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=jp(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 Gd(n,`isCompressed`),n?(u(),nl(Ap(!r.isOdd(a)),o)):nl(Uint8Array.of(4),o,r.toBytes(a))}function f(e){Kd(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,Ep),Dp),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 yp(e,c.basises,i.ORDER)}let S=cf((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=cf(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=Bf(i,t),n=Bf(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(Kd(e,void 0,`point`)));return t.assertValidity(),t}static fromHex(e){return T.fromBytes($d(`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(Ep),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,Ep),{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,Ep),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=>Vf(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 Vf(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===Cp||r.is0())return T.ZERO;if(e===wp)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}=Qf(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===wp?!0:e?e(T,this):D.unsafe(this,s).is0()}clearCofactor(){let{clearCofactor:e}=t;return o===wp?this:e?e(T,this):this.multiplyUnsafe(o)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}toBytes(e=!0){return Gd(e,`isCompressed`),this.assertValidity(),p(T,this,e)}toHex(e=!0){return Xc(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 Vf(T,e)}static msm(e,t){return $f(T,i,e,t)}static fromPrivateKey(e){return T.BASE.multiply(Op(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 Zf(T,t.endo?Math.ceil(E/2):E);return T.BASE.precompute(8),T}function Ap(e){return Uint8Array.of(e?2:3)}function jp(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function Mp(e,t={}){let{Fn:n}=e,r=t.randomBytes||ol,i=Object.assign(jp(e.Fp,n),{seed:If(n.ORDER)});function a(e){try{return!!Op(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 Lf(Kd(e,i.seed,`seed`),n.ORDER)}function c(t,r=!0){return e.BASE.multiply(Op(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=$d(`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=Op(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=>Op(n,e),precompute(t=8,n=e.BASE){return n.precompute(t,!1)}},lengths:i})}function Np(e,t,n={}){Ic(t),sf(n,{},{hmac:`function`,lowS:`boolean`,randomBytes:`function`,bits2int:`function`,bits2int_modN:`function`});let r=n.randomBytes||ol,i=n.hmac||((e,...n)=>Id(t,e,nl(...n))),{Fp:a,Fn:o}=e,{ORDER:s,BITS:c}=o,{keygen:l,getPublicKey:u,getSharedSecret:d,utils:f,lengths:p}=Mp(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>>wp}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){bp(t);let n=p.signature;return Kd(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}=Sp.toSig(Kd(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($c(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*Tp<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(nl(Ap(!(c&1)),u)),f=o.inv(l),p=x($d(`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(bp(e),e===`der`)return $c(Sp.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 nl(Uint8Array.of(this.recovery),t,n)}return nl(t,n)}toHex(e){return Xc(this.toBytes(e))}assertValidity(){}static fromCompact(e){return y.fromBytes($d(`sig`,e),`compact`)}static fromDER(e){return y.fromBytes($d(`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 Xc(this.toBytes(`der`))}toCompactRawBytes(){return this.toBytes(`compact`)}toCompactHex(){return Xc(this.toBytes(`compact`))}}let b=n.bits2int||function(e){if(e.length>8192)throw Error(`input is too large`);let t=Yd(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=af(c);function C(e){return nf(`num < 2^`+c,e,Cp,S),o.toBytes(e)}function w(e,n){return Kd(e,void 0,`message`),n?Kd(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}=xp(i,m);t=w(t,s);let l=x(t),u=Op(o,n),d=[C(u),C(l)];if(c!=null&&c!==!1){let e=c===!0?r(p.secretKey):c;d.push($d(`extraEntropy`,e))}let f=nl(...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===Cp)return;let c=o.create(r*o.create(h+s*u));if(c===Cp)return;let l=(i.x===s?0:2)|Number(i.y&wp),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=$d(`message`,e);let{seed:a,k2sig:s}=T(e,n,r);return of(t.outputLen,o.BYTES,i)(a,s)}function D(e){let t,n=typeof e==`string`||Nc(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($d(`sig`,e),`der`)}catch(e){if(!(e instanceof Sp.Err))throw e}if(!t)try{t=y.fromBytes($d(`sig`,e),`compact`)}catch{return!1}}return t||!1}function O(t,n,r,i={}){let{lowS:a,prehash:s,format:c}=xp(i,m);if(r=$d(`publicKey`,r),n=w($d(`message`,n),s),`strict`in i)throw Error(`options.strict was renamed to lowS`);let l=c===void 0?D(t):y.fromBytes($d(`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}=xp(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 Pp(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:Pf(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 Fp(e){let{CURVE:t,curveOpts:n}=Pp(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 Ip(e,t){let n=t.Point;return Object.assign({},t,{ProjectivePoint:n,CURVE:Object.assign({},e,Nf(n.Fn.ORDER,n.Fn.BITS))})}function Lp(e){let{CURVE:t,curveOpts:n,hash:r,ecdsaOpts:i}=Fp(e);return Ip(e,Np(kp(t,n),r,i))}function Rp(e,t){let n=t=>Lp({...e,hash:t});return{...n(t),create:n}}var zp={p:BigInt(`0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff`),n:BigInt(`0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551`),h:BigInt(1),a:BigInt(`0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc`),b:BigInt(`0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b`),Gx:BigInt(`0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296`),Gy:BigInt(`0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5`)},Bp={p:BigInt(`0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff`),n:BigInt(`0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973`),h:BigInt(1),a:BigInt(`0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc`),b:BigInt(`0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef`),Gx:BigInt(`0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7`),Gy:BigInt(`0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f`)},Vp={p:BigInt(`0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`),n:BigInt(`0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409`),h:BigInt(1),a:BigInt(`0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc`),b:BigInt(`0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00`),Gx:BigInt(`0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66`),Gy:BigInt(`0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650`)},Hp=Pf(zp.p),Up=Pf(Bp.p),Wp=Pf(Vp.p),Gp=Rp({...zp,Fp:Hp,lowS:!1},Ul);Rp({...Bp,Fp:Up,lowS:!1},Gl),Rp({...Vp,Fp:Wp,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},Wl);var Kp=Gp,qp=`base10`,Jp=`base16`,Yp=`base64pad`,Xp=`base64url`,Zp=`utf8`,Qp=0,$p=1,em=12,tm=32;function nm(){let e=_p.utils.randomPrivateKey(),t=_p.getPublicKey(e);return{privateKey:Ye(e,Jp),publicKey:Ye(t,Jp)}}function rm(){let e=ol(tm);return Ye(e,Jp)}function im(e,t){let n=Vd(Hd,_p.getSharedSecret(ht(e,Jp),ht(t,Jp)),void 0,void 0,tm);return Ye(n,Jp)}function am(e){let t=Hd(ht(e,Jp));return Ye(t,Jp)}function om(e){let t=Hd(ht(e,Zp));return Ye(t,Jp)}function sm(e){return ht(`${e}`,qp)}function cm(e){return Number(Ye(e,qp))}function lm(e){return e.replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function um(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=(4-t.length%4)%4;return t+`=`.repeat(n)}function dm(e){let t=sm(typeof e.type<`u`?e.type:0);if(cm(t)===1&&typeof e.senderPublicKey>`u`)throw Error(`Missing sender public key for type 1 envelope`);let n=typeof e.senderPublicKey<`u`?ht(e.senderPublicKey,Jp):void 0,r=typeof e.iv<`u`?ht(e.iv,Jp):ol(em),i=hm({type:t,sealed:Pd(ht(e.symKey,Jp),r).encrypt(ht(e.message,Zp)),iv:r,senderPublicKey:n});return e.encoding===`base64url`?lm(i):i}function fm(e){let t=ht(e.symKey,Jp),{sealed:n,iv:r}=gm({encoded:e.encoded,encoding:e.encoding}),i=Pd(t,r).decrypt(n);if(i===null)throw Error(`Failed to decrypt`);return Ye(i,Zp)}function pm(e,t){let n=sm(2),r=ol(em),i=hm({type:n,sealed:ht(e,Zp),iv:r});return t===`base64url`?lm(i):i}function mm(e,t){let{sealed:n}=gm({encoded:e,encoding:t});return Ye(n,Zp)}function hm(e){if(cm(e.type)===2)return Ye(Ge([e.type,e.sealed]),Yp);if(cm(e.type)===1){if(typeof e.senderPublicKey>`u`)throw Error(`Missing sender public key for type 1 envelope`);return Ye(Ge([e.type,e.senderPublicKey,e.iv,e.sealed]),Yp)}return Ye(Ge([e.type,e.iv,e.sealed]),Yp)}function gm(e){let t=(e.encoding||`base64pad`)===`base64url`?um(e.encoded):e.encoded,n=ht(t,Yp),r=n.slice(Qp,$p),i=$p;if(cm(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(cm(r)===2)return{type:r,sealed:n.slice(i),iv:ol(em)};let a=n.slice(i,13);return{type:r,sealed:n.slice(13),iv:a}}function _m(e,t){let n=gm({encoded:e,encoding:t?.encoding});return vm({type:cm(n.type),senderPublicKey:typeof n.senderPublicKey<`u`?Ye(n.senderPublicKey,Jp):void 0,receiverPublicKey:t?.receiverPublicKey})}function vm(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 ym(e){return e.type===1&&typeof e.senderPublicKey==`string`&&typeof e.receiverPublicKey==`string`}function bm(e){return e.type===2}function xm(e){let t=Buffer.from(e.x,`base64`),n=Buffer.from(e.y,`base64`);return Ge([new Uint8Array([4]),t,n])}function Sm(e,t){let[n,r,i]=e.split(`.`),a=Buffer.from(um(i),`base64`);if(a.length!==64)throw Error(`Invalid signature length`);let o=a.slice(0,32),s=a.slice(32,64),c=Hd(`${n}.${r}`),l=xm(t);if(!Kp.verify(Ge([o,s]),c,l))throw Error(`Invalid signature`);return Re(e).payload}function Cm(e){return e?.relay||{protocol:`irn`}}function wm(e){let t=gt[e];if(typeof t>`u`)throw Error(`Relay Protocol not supported: ${e}`);return t}var Tm=Object.defineProperty,Em=Object.defineProperties,Dm=Object.getOwnPropertyDescriptors,Om=Object.getOwnPropertySymbols,km=Object.prototype.hasOwnProperty,Am=Object.prototype.propertyIsEnumerable,jm=(e,t,n)=>t in e?Tm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Mm=(e,t)=>{for(var n in t||={})km.call(t,n)&&jm(e,n,t[n]);if(Om)for(var n of Om(t))Am.call(t,n)&&jm(e,n,t[n]);return e},Nm=(e,t)=>Em(e,Dm(t));function Pm(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 Fm(e){if(!e.includes(`wc:`)){let t=oc(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:Im(i[0]),version:parseInt(i[1],10),symKey:s.symKey,relay:Pm(s),methods:c,expiryTimestamp:s.expiryTimestamp?parseInt(s.expiryTimestamp,10):void 0}}function Im(e){return e.startsWith(`//`)?e.substring(2):e}function Lm(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 Rm(e){let t=new URLSearchParams,n=Mm(Mm(Nm(Mm({},Lm(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 zm(e,t,n){return`${e}?wc_ev=${n}&topic=${t}`}var Bm=Object.defineProperty,Vm=Object.defineProperties,Hm=Object.getOwnPropertyDescriptors,Um=Object.getOwnPropertySymbols,Wm=Object.prototype.hasOwnProperty,Gm=Object.prototype.propertyIsEnumerable,Km=(e,t,n)=>t in e?Bm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,qm=(e,t)=>{for(var n in t||={})Wm.call(t,n)&&Km(e,n,t[n]);if(Um)for(var n of Um(t))Gm.call(t,n)&&Km(e,n,t[n]);return e},Jm=(e,t)=>Vm(e,Hm(t));function Ym(e){let t=[];return e.forEach(e=>{let[n,r]=e.split(`:`);t.push(`${n}:${r}`)}),t}function Xm(e){let t=[];return Object.values(e).forEach(e=>{t.push(...Ym(e.accounts))}),t}function Zm(e,t){let n=[];return Object.values(e).forEach(e=>{Ym(e.accounts).includes(t)&&n.push(...e.methods)}),n}function Qm(e,t){let n=[];return Object.values(e).forEach(e=>{Ym(e.accounts).includes(t)&&n.push(...e.events)}),n}function $m(e){return e.includes(`:`)}function eh(e){return $m(e)?e.split(`:`)[0]:e}function th(e){let t={};if(!ch(e))return t;for(let[n,r]of Object.entries(e)){let e=$m(n)?[n]:r.chains,i=r.methods||[],a=r.events||[],o=eh(n);t[o]=Jm(qm({},t[o]),{chains:Ys(e,t[o]?.chains),methods:Ys(i,t[o]?.methods),events:Ys(a,t[o]?.events)})}return t}function nh(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 rh(e,t){t=t.map(e=>e.replace(`did:pkh:`,``));let n=nh(t);for(let[t,r]of Object.entries(n))r.methods=r.methods?Ys(r.methods,e):e,r.events=[`chainChanged`,`accountsChanged`];return n}function ih(e,t){let n=th(e),r=th(t),i={},a=Object.keys(n).concat(Object.keys(r));for(let e of a)i[e]={chains:Ys(n[e]?.chains,r[e]?.chains),methods:Ys(n[e]?.methods,r[e]?.methods),events:Ys(n[e]?.events,r[e]?.events)};return i}var ah={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}},oh={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 W(e,t){let{message:n,code:r}=oh[e];return{message:t?`${n} ${t}`:n,code:r}}function G(e,t){let{message:n,code:r}=ah[e];return{message:t?`${n} ${t}`:n,code:r}}function sh(e,t){return Array.isArray(e)?typeof t<`u`&&e.length?e.every(t):!0:!1}function ch(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function lh(e){return typeof e>`u`}function uh(e,t){return t&&lh(e)?!0:typeof e==`string`&&!!e.trim().length}function dh(e,t){return t&&lh(e)?!0:typeof e==`number`&&!isNaN(e)}function fh(e,t){let{requiredNamespaces:n}=t,r=Object.keys(e.namespaces),i=Object.keys(n),a=!0;return Rs(i,r)?(r.forEach(t=>{let{accounts:r,methods:i,events:o}=e.namespaces[t],s=Ym(r),c=n[t];(!Rs(fs(t,c),s)||!Rs(c.methods,i)||!Rs(c.events,o))&&(a=!1)}),a):!1}function ph(e){return uh(e,!1)&&e.includes(`:`)?e.split(`:`).length===2:!1}function mh(e){if(uh(e,!1)&&e.includes(`:`)){let t=e.split(`:`);if(t.length===3){let e=t[0]+`:`+t[1];return!!t[2]&&ph(e)}}return!1}function hh(e){function t(e){try{return typeof new URL(e)<`u`}catch{return!1}}try{if(uh(e,!1))return t(e)?!0:t(oc(e))}catch{}return!1}function gh(e){return e?.proposer?.publicKey}function _h(e){return e?.topic}function vh(e,t){let n=null;return uh(e?.publicKey,!1)||(n=W(`MISSING_OR_INVALID`,`${t} controller public key should be a string`)),n}function yh(e){let t=!0;return sh(e)?e.length&&(t=e.every(e=>uh(e,!1))):t=!1,t}function bh(e,t,n){let r=null;return sh(t)&&t.length?t.forEach(e=>{r||ph(e)||(r=G(`UNSUPPORTED_CHAINS`,`${n}, chain ${e} should be a string and conform to "namespace:chainId" format`))}):ph(e)||(r=G(`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 xh(e,t,n){let r=null;return Object.entries(e).forEach(([e,i])=>{if(r)return;let a=bh(e,fs(e,i),`${t} ${n}`);a&&(r=a)}),r}function Sh(e,t){let n=null;return sh(e)?e.forEach(e=>{n||mh(e)||(n=G(`UNSUPPORTED_ACCOUNTS`,`${t}, account ${e} should be a string and conform to "namespace:chainId:address" format`))}):n=G(`UNSUPPORTED_ACCOUNTS`,`${t}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),n}function Ch(e,t){let n=null;return Object.values(e).forEach(e=>{if(n)return;let r=Sh(e?.accounts,`${t} namespace`);r&&(n=r)}),n}function wh(e,t){let n=null;return yh(e?.methods)?yh(e?.events)||(n=G(`UNSUPPORTED_EVENTS`,`${t}, events should be an array of strings or empty array for no events`)):n=G(`UNSUPPORTED_METHODS`,`${t}, methods should be an array of strings or empty array for no methods`),n}function Th(e,t){let n=null;return Object.values(e).forEach(e=>{if(n)return;let r=wh(e,`${t}, namespace`);r&&(n=r)}),n}function Eh(e,t,n){let r=null;if(e&&ch(e)){let i=Th(e,t);i&&(r=i);let a=xh(e,t,n);a&&(r=a)}else r=W(`MISSING_OR_INVALID`,`${t}, ${n} should be an object with data`);return r}function Dh(e,t){let n=null;if(e&&ch(e)){let r=Th(e,t);r&&(n=r);let i=Ch(e,t);i&&(n=i)}else n=W(`MISSING_OR_INVALID`,`${t}, namespaces should be an object with data`);return n}function Oh(e){return uh(e.protocol,!0)}function kh(e,t){let n=!1;return t&&!e?n=!0:e&&sh(e)&&e.length&&e.forEach(e=>{n=Oh(e)}),n}function Ah(e){return typeof e==`number`}function jh(e){return typeof e<`u`&&!0}function Mh(e){return!(!e||typeof e!=`object`||!e.code||!dh(e.code,!1)||!e.message||!uh(e.message,!1))}function Nh(e){return!(lh(e)||!uh(e.method,!1))}function Ph(e){return!(lh(e)||lh(e.result)&&lh(e.error)||!dh(e.id,!1)||!uh(e.jsonrpc,!1))}function Fh(e){return!(lh(e)||!uh(e.name,!1))}function Ih(e,t){return!(!ph(t)||!Xm(e).includes(t))}function Lh(e,t,n){return uh(n,!1)?Zm(e,t).includes(n):!1}function Rh(e,t,n){return uh(n,!1)?Qm(e,t).includes(n):!1}function zh(e,t,n){let r=null,i=Bh(e),a=Hh(t),o=Object.keys(i),s=Object.keys(a),c=Vh(Object.keys(e)),l=Vh(Object.keys(t)),u=c.filter(e=>!l.includes(e));return u.length&&(r=W(`NON_CONFORMING_NAMESPACES`,`${n} namespaces keys don't satisfy requiredNamespaces.
|
|
9
|
+
Required: ${u.toString()}
|
|
10
|
+
Received: ${Object.keys(t).toString()}`)),Rs(o,s)||(r=W(`NON_CONFORMING_NAMESPACES`,`${n} namespaces chains don't satisfy required namespaces.
|
|
11
|
+
Required: ${o.toString()}
|
|
12
|
+
Approved: ${s.toString()}`)),Object.keys(t).forEach(e=>{if(!e.includes(`:`)||r)return;let i=Ym(t[e].accounts);i.includes(e)||(r=W(`NON_CONFORMING_NAMESPACES`,`${n} namespaces accounts don't satisfy namespace accounts for ${e}
|
|
13
|
+
Required: ${e}
|
|
14
|
+
Approved: ${i.toString()}`))}),o.forEach(e=>{r||(Rs(i[e].methods,a[e].methods)?Rs(i[e].events,a[e].events)||(r=W(`NON_CONFORMING_NAMESPACES`,`${n} namespaces events don't satisfy namespace events for ${e}`)):r=W(`NON_CONFORMING_NAMESPACES`,`${n} namespaces methods don't satisfy namespace methods for ${e}`))}),r}function Bh(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 Vh(e){return[...new Set(e.map(e=>e.includes(`:`)?e.split(`:`)[0]:e))]}function Hh(e){let t={};return Object.keys(e).forEach(n=>{n.includes(`:`)?t[n]=e[n]:Ym(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 Uh(e,t){return dh(e,!1)&&e<=t.max&&e>=t.min}function Wh(){let e=ks();return new Promise(t=>{switch(e){case Cs.browser:t(Gh());break;case Cs.reactNative:t(Kh());break;case Cs.node:t(qh());break;default:t(!0)}})}function Gh(){return Os()&&navigator?.onLine}async function Kh(){return Ts()&&typeof global<`u`&&global!=null&&global.NetInfo?(await(global==null?void 0:global.NetInfo.fetch()))?.isConnected:!0}function qh(){return!0}function Jh(e){switch(ks()){case Cs.browser:Yh(e);break;case Cs.reactNative:Xh(e);break;case Cs.node:}}function Yh(e){!Ts()&&Os()&&(window.addEventListener(`online`,()=>e(!0)),window.addEventListener(`offline`,()=>e(!1)))}function Xh(e){Ts()&&typeof global<`u`&&global!=null&&global.NetInfo&&global?.NetInfo.addEventListener(t=>e(t?.isConnected))}function Zh(){return Os()&&(0,So.getDocument)()?(0,So.getDocument)()?.visibilityState===`visible`:!0}var Qh={},$h=class{static get(e){return Qh[e]}static set(e,t){Qh[e]=t}static delete(e){delete Qh[e]}};function eg(e){let t=nt.decode(e);if(t.length<33)throw Error(`Too short to contain a public key`);return t.slice(1,33)}function tg({publicKey:e,signature:t,payload:n}){let r=rg(n.method),i=128|parseInt(n.version?.toString()||`4`),a=ag(n.address),o=n.era===`00`?new Uint8Array([0]):rg(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=sg(BigInt(`0x${ig(n.tip)}`)),u=new Uint8Array([0,...e,a,...t,...o,...c,...l,...r]),d=og(u.length+1);return new Uint8Array([...d,i,...u])}function ng(e){let t=rg(e),n=(0,wo.blake2b)(t,void 0,32);return`0x`+Buffer.from(n).toString(`hex`)}function rg(e){return new Uint8Array(e.replace(/^0x/,``).match(/.{1,2}/g).map(e=>parseInt(e,16)))}function ig(e){return e.startsWith(`0x`)?e.slice(2):e}function ag(e){let t=nt.decode(e)[0];return t===42?0:t===60?2:1}function og(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 sg(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 cg(e){let t=Uint8Array.from(Buffer.from(e.signature,`hex`)),n=tg({publicKey:eg(e.transaction.address),signature:t,payload:e.transaction});return ng(Buffer.from(n).toString(`hex`))}function lg({logger:e,name:t}){let n=typeof e==`string`?cs({opts:{level:e,name:t}}).logger:e;return n.level=typeof e==`string`?e:e.level,n}var ug=Object.defineProperty,dg=(e,t,n)=>t in e?ug(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,fg=(e,t,n)=>dg(e,typeof t==`symbol`?t:t+``,n),pg=class extends $e{constructor(e){super(),this.opts=e,fg(this,`protocol`,`wc`),fg(this,`version`,2)}},mg=Object.defineProperty,hg=(e,t,n)=>t in e?mg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,gg=(e,t,n)=>hg(e,typeof t==`symbol`?t:t+``,n),_g=class extends $e{constructor(e,t){super(),this.core=e,this.logger=t,gg(this,`records`,new Map)}},vg=class{constructor(e,t){this.logger=e,this.core=t}},yg=class extends $e{constructor(e,t){super(),this.relayer=e,this.logger=t}},bg=class extends $e{constructor(e){super()}},xg=class{constructor(e,t,n,r){this.core=e,this.logger=t,this.name=n}},Sg=class extends $e{constructor(e,t){super(),this.relayer=e,this.logger=t}},Cg=class extends $e{constructor(e,t){super(),this.core=e,this.logger=t}},wg=class{constructor(e,t,n){this.core=e,this.logger=t,this.store=n}},Tg=class{constructor(e,t){this.projectId=e,this.logger=t}},Eg=class{constructor(e,t,n){this.core=e,this.logger=t,this.telemetryEnabled=n}},Dg=Object.defineProperty,Og=(e,t,n)=>t in e?Dg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kg=(e,t,n)=>Og(e,typeof t==`symbol`?t:t+``,n),Ag=class{constructor(e){this.opts=e,kg(this,`protocol`,`wc`),kg(this,`version`,2)}},jg=class{constructor(e){this.client=e}},Mg=`core`,Ng=`wc@2:${Mg}:`,Pg={name:Mg,logger:`error`},Fg={database:`:memory:`},Ig=`crypto`,Lg=`client_ed25519_seed`,Rg=B.ONE_DAY,zg=`keychain`,Bg=`messages`,Vg=B.SIX_HOURS,Hg=`publisher`,Ug=`error`,Wg=`relayer`,Gg={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`},Kg={payload:`payload`,connect:`connect`,disconnect:`disconnect`,error:`error`},qg=`2.22.4`,K={link_mode:`link_mode`,relay:`relay`},Jg={inbound:`inbound`,outbound:`outbound`},Yg=`WALLETCONNECT_CLIENT_ID`,Xg={created:`subscription_created`,deleted:`subscription_deleted`,expired:`subscription_expired`,disabled:`subscription_disabled`,sync:`subscription_sync`,resubscribed:`subscription_resubscribed`},Zg=`subscription`;B.FIVE_SECONDS*1e3;var Qg=`pairing`,$g={wc_pairingDelete:{req:{ttl:B.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:B.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:B.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:B.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:B.ONE_DAY,prompt:!1,tag:0},res:{ttl:B.ONE_DAY,prompt:!1,tag:0}}},e_={create:`pairing_create`,expire:`pairing_expire`,delete:`pairing_delete`,ping:`pairing_ping`},t_={created:`history_created`,updated:`history_updated`,deleted:`history_deleted`,sync:`history_sync`},n_=`history`,r_=`expirer`,i_={created:`expirer_created`,deleted:`expirer_deleted`,expired:`expirer_expired`,sync:`expirer_sync`},a_=`verify-api`,o_=`https://verify.walletconnect.com`,s_=`https://verify.walletconnect.org`,c_=`${s_}/v3`,l_=[o_,s_],u_=`echo`,d_=`https://echo.walletconnect.com`,f_={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`},p_={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`},m_={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`,session_request_response_started:`session_request_response_started`,session_request_response_validation_success:`session_request_response_validation_success`,session_request_response_publish_started:`session_request_response_publish_started`},h_={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`,session_request_response_validation_failure:`session_request_response_validation_failure`,session_request_response_publish_failure:`session_request_response_publish_failure`},g_={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`},__={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`},v_=.1,y_=`event-client`,b_=`https://pulse.walletconnect.org/batch`;function x_(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 S_=x_,C_=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`)},w_=e=>new TextEncoder().encode(e),T_=e=>new TextDecoder().decode(e),E_=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`)}},D_=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 k_(this,e)}},O_=class{constructor(e){this.decoders=e}or(e){return k_(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`)}},k_=(e,t)=>new O_({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),A_=class{constructor(e,t,n,r){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=r,this.encoder=new E_(e,t,n),this.decoder=new D_(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},j_=({name:e,prefix:t,encode:n,decode:r})=>new A_(e,t,n,r),M_=({prefix:e,name:t,alphabet:n})=>{let{encode:r,decode:i}=S_(n,t);return j_({prefix:e,name:t,encode:r,decode:e=>C_(i(e))})},N_=(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},P_=(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},F_=({name:e,prefix:t,bitsPerChar:n,alphabet:r})=>j_({prefix:t,name:e,encode(e){return P_(e,r,n)},decode(t){return N_(t,r,n,e)}}),I_=j_({prefix:`\0`,name:`identity`,encode:e=>T_(e),decode:e=>w_(e)}),L_=Object.freeze({__proto__:null,identity:I_}),R_=F_({prefix:`0`,name:`base2`,alphabet:`01`,bitsPerChar:1}),z_=Object.freeze({__proto__:null,base2:R_}),B_=F_({prefix:`7`,name:`base8`,alphabet:`01234567`,bitsPerChar:3}),V_=Object.freeze({__proto__:null,base8:B_}),H_=M_({prefix:`9`,name:`base10`,alphabet:`0123456789`}),U_=Object.freeze({__proto__:null,base10:H_}),W_=F_({prefix:`f`,name:`base16`,alphabet:`0123456789abcdef`,bitsPerChar:4}),G_=F_({prefix:`F`,name:`base16upper`,alphabet:`0123456789ABCDEF`,bitsPerChar:4}),K_=Object.freeze({__proto__:null,base16:W_,base16upper:G_}),q_=F_({prefix:`b`,name:`base32`,alphabet:`abcdefghijklmnopqrstuvwxyz234567`,bitsPerChar:5}),J_=F_({prefix:`B`,name:`base32upper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`,bitsPerChar:5}),Y_=F_({prefix:`c`,name:`base32pad`,alphabet:`abcdefghijklmnopqrstuvwxyz234567=`,bitsPerChar:5}),X_=F_({prefix:`C`,name:`base32padupper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=`,bitsPerChar:5}),Z_=F_({prefix:`v`,name:`base32hex`,alphabet:`0123456789abcdefghijklmnopqrstuv`,bitsPerChar:5}),Q_=F_({prefix:`V`,name:`base32hexupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV`,bitsPerChar:5}),$_=F_({prefix:`t`,name:`base32hexpad`,alphabet:`0123456789abcdefghijklmnopqrstuv=`,bitsPerChar:5}),ev=F_({prefix:`T`,name:`base32hexpadupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV=`,bitsPerChar:5}),tv=F_({prefix:`h`,name:`base32z`,alphabet:`ybndrfg8ejkmcpqxot1uwisza345h769`,bitsPerChar:5}),nv=Object.freeze({__proto__:null,base32:q_,base32upper:J_,base32pad:Y_,base32padupper:X_,base32hex:Z_,base32hexupper:Q_,base32hexpad:$_,base32hexpadupper:ev,base32z:tv}),rv=M_({prefix:`k`,name:`base36`,alphabet:`0123456789abcdefghijklmnopqrstuvwxyz`}),iv=M_({prefix:`K`,name:`base36upper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ`}),av=Object.freeze({__proto__:null,base36:rv,base36upper:iv}),ov=M_({name:`base58btc`,prefix:`z`,alphabet:`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`}),sv=M_({name:`base58flickr`,prefix:`Z`,alphabet:`123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ`}),cv=Object.freeze({__proto__:null,base58btc:ov,base58flickr:sv}),lv=F_({prefix:`m`,name:`base64`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,bitsPerChar:6}),uv=F_({prefix:`M`,name:`base64pad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`,bitsPerChar:6}),dv=F_({prefix:`u`,name:`base64url`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,bitsPerChar:6}),fv=F_({prefix:`U`,name:`base64urlpad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=`,bitsPerChar:6}),pv=Object.freeze({__proto__:null,base64:lv,base64pad:uv,base64url:dv,base64urlpad:fv}),mv=Array.from(`🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂`),hv=mv.reduce((e,t,n)=>(e[n]=t,e),[]),gv=mv.reduce((e,t,n)=>(e[t.codePointAt(0)]=n,e),[]);function _v(e){return e.reduce((e,t)=>(e+=hv[t],e),``)}function vv(e){let t=[];for(let n of e){let e=gv[n.codePointAt(0)];if(e===void 0)throw Error(`Non-base256emoji character: ${n}`);t.push(e)}return new Uint8Array(t)}var yv=j_({prefix:`🚀`,name:`base256emoji`,encode:_v,decode:vv}),bv=Object.freeze({__proto__:null,base256emoji:yv}),xv=Tv,Sv=128,Cv=-128,wv=2**31;function Tv(e,t,n){t||=[],n||=0;for(var r=n;e>=wv;)t[n++]=e&255|Sv,e/=128;for(;e&Cv;)t[n++]=e&255|Sv,e>>>=7;return t[n]=e|0,Tv.bytes=n-r+1,t}var Ev=kv,Dv=128,Ov=127;function kv(e,t){var n=0,t=t||0,r=0,i=t,a,o=e.length;do{if(i>=o)throw kv.bytes=0,RangeError(`Could not decode varint`);a=e[i++],n+=r<28?(a&Ov)<<r:(a&Ov)*2**r,r+=7}while(a>=Dv);return kv.bytes=i-t,n}var Av=128,jv=2**14,Mv=2**21,Nv=2**28,Pv=2**35,Fv=2**42,Iv=2**49,Lv=2**56,Rv=2**63,zv={encode:xv,decode:Ev,encodingLength:function(e){return e<Av?1:e<jv?2:e<Mv?3:e<Nv?4:e<Pv?5:e<Fv?6:e<Iv?7:e<Lv?8:e<Rv?9:10}},Bv=(e,t,n=0)=>(zv.encode(e,t,n),t),Vv=e=>zv.encodingLength(e),Hv=(e,t)=>{let n=t.byteLength,r=Vv(e),i=r+Vv(n),a=new Uint8Array(i+n);return Bv(e,a,0),Bv(n,a,r),a.set(t,i),new Uv(e,n,t,a)},Uv=class{constructor(e,t,n,r){this.code=e,this.size=t,this.digest=n,this.bytes=r}},Wv=({name:e,code:t,encode:n})=>new Gv(e,t,n),Gv=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?Hv(this.code,t):t.then(e=>Hv(this.code,e))}throw Error(`Unknown type, must be binary type`)}},Kv=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),qv=Wv({name:`sha2-256`,code:18,encode:Kv(`SHA-256`)}),Jv=Wv({name:`sha2-512`,code:19,encode:Kv(`SHA-512`)}),Yv=Object.freeze({__proto__:null,sha256:qv,sha512:Jv}),Xv=0,Zv=`identity`,Qv=C_,$v=Object.freeze({__proto__:null,identity:{code:Xv,name:Zv,encode:Qv,digest:e=>Hv(Xv,Qv(e))}});new TextEncoder,new TextDecoder;var ey={...L_,...z_,...V_,...U_,...K_,...nv,...av,...cv,...pv,...bv};({...Yv,...$v});function ty(e){return globalThis.Buffer==null?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function ny(e=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?ty(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function ry(e,t,n,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:n},decoder:{decode:r}}}var iy=ry(`utf8`,`u`,e=>`u`+new TextDecoder(`utf8`).decode(e),e=>new TextEncoder().encode(e.substring(1))),ay=ry(`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=ny(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}),oy={utf8:iy,"utf-8":iy,hex:ey.base16,latin1:ay,ascii:ay,binary:ay,...ey};function sy(e,t=`utf8`){let n=oy[t];if(!n)throw Error(`Unsupported encoding "${t}"`);return(t===`utf8`||t===`utf-8`)&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?ty(globalThis.Buffer.from(e,`utf-8`)):n.decoder.decode(`${n.prefix}${e}`)}var cy=Object.defineProperty,ly=(e,t,n)=>t in e?cy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,uy=(e,t,n)=>ly(e,typeof t==`symbol`?t:t+``,n),dy=class{constructor(e,t){this.core=e,this.logger=t,uy(this,`keychain`,new Map),uy(this,`name`,zg),uy(this,`version`,`0.3`),uy(this,`initialized`,!1),uy(this,`storagePrefix`,Ng),uy(this,`init`,async()=>{if(!this.initialized){let e=await this.getKeyChain();typeof e<`u`&&(this.keychain=e),this.initialized=!0}}),uy(this,`has`,e=>(this.isInitialized(),this.keychain.has(e))),uy(this,`set`,async(e,t)=>{this.isInitialized(),this.keychain.set(e,t),await this.persist()}),uy(this,`get`,e=>{this.isInitialized();let t=this.keychain.get(e);if(typeof t>`u`){let{message:t}=W(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}),uy(this,`del`,async e=>{this.isInitialized(),this.keychain.delete(e),await this.persist()}),this.core=e,this.logger=as(t,this.name)}get context(){return rs(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,zs(e))}async getKeyChain(){let e=await this.core.storage.getItem(this.storageKey);return typeof e<`u`?Bs(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){let{message:e}=W(`NOT_INITIALIZED`,this.name);throw Error(e)}}},fy=Object.defineProperty,py=(e,t,n)=>t in e?fy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,my=(e,t,n)=>py(e,typeof t==`symbol`?t:t+``,n),hy=class{constructor(e,t,n){this.core=e,this.logger=t,my(this,`name`,Ig),my(this,`keychain`),my(this,`randomSessionIdentifier`,rm()),my(this,`initialized`,!1),my(this,`clientId`),my(this,`init`,async()=>{this.initialized||=(await this.keychain.init(),!0)}),my(this,`hasKeys`,e=>(this.isInitialized(),this.keychain.has(e))),my(this,`getClientId`,async()=>{if(this.isInitialized(),this.clientId)return this.clientId;let e=await this.getClientSeed(),t=Ie(e),n=mt(t.publicKey);return this.clientId=n,n}),my(this,`generateKeyPair`,()=>{this.isInitialized();let e=nm();return this.setPrivateKey(e.publicKey,e.privateKey)}),my(this,`signJWT`,async e=>{this.isInitialized();let t=await this.getClientSeed(),n=Ie(t),r=this.randomSessionIdentifier;return await Ke(r,e,Rg,n)}),my(this,`generateSharedKey`,(e,t,n)=>{this.isInitialized();let r=im(this.getPrivateKey(e),t);return this.setSymKey(r,n)}),my(this,`setSymKey`,async(e,t)=>{this.isInitialized();let n=t||am(e);return await this.keychain.set(n,e),n}),my(this,`deleteKeyPair`,async e=>{this.isInitialized(),await this.keychain.del(e)}),my(this,`deleteSymKey`,async e=>{this.isInitialized(),await this.keychain.del(e)}),my(this,`encode`,async(e,t,n)=>{this.isInitialized();let r=vm(n),i=Ue(t);if(bm(r))return pm(i,n?.encoding);if(ym(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 dm({type:o,symKey:a,message:i,senderPublicKey:s,encoding:n?.encoding})}),my(this,`decode`,async(e,t,n)=>{this.isInitialized();let r=_m(t,n);if(bm(r)){let e=mm(t,n?.encoding);return Le(e)}if(ym(r)){let t=r.receiverPublicKey,n=r.senderPublicKey;e=await this.generateSharedKey(t,n)}try{let r=fm({symKey:this.getSymKey(e),encoded:t,encoding:n?.encoding});return Le(r)}catch(t){this.logger.error(`Failed to decode message from topic: '${e}', clientId: '${await this.getClientId()}'`),this.logger.error(t)}}),my(this,`getPayloadType`,(e,t=Yp)=>cm(gm({encoded:e,encoding:t}).type)),my(this,`getPayloadSenderPublicKey`,(e,t=Yp)=>{let n=gm({encoded:e,encoding:t});return n.senderPublicKey?Ye(n.senderPublicKey,Jp):void 0}),this.core=e,this.logger=as(t,this.name),this.keychain=n||new dy(this.core,this.logger)}get context(){return rs(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(Lg)}catch{e=rm(),await this.keychain.set(Lg,e)}return sy(e,`base16`)}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){let{message:e}=W(`NOT_INITIALIZED`,this.name);throw Error(e)}}},gy=Object.defineProperty,_y=Object.defineProperties,vy=Object.getOwnPropertyDescriptors,yy=Object.getOwnPropertySymbols,by=Object.prototype.hasOwnProperty,xy=Object.prototype.propertyIsEnumerable,Sy=(e,t,n)=>t in e?gy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Cy=(e,t)=>{for(var n in t||={})by.call(t,n)&&Sy(e,n,t[n]);if(yy)for(var n of yy(t))xy.call(t,n)&&Sy(e,n,t[n]);return e},wy=(e,t)=>_y(e,vy(t)),Ty=(e,t,n)=>Sy(e,typeof t==`symbol`?t:t+``,n),Ey=class extends vg{constructor(e,t){super(e,t),this.logger=e,this.core=t,Ty(this,`messages`,new Map),Ty(this,`messagesWithoutClientAck`,new Map),Ty(this,`name`,Bg),Ty(this,`version`,`0.3`),Ty(this,`initialized`,!1),Ty(this,`storagePrefix`,Ng),Ty(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}}}),Ty(this,`set`,async(e,t,n)=>{this.isInitialized();let r=om(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===Jg.inbound){let n=this.messagesWithoutClientAck.get(e)||{};this.messagesWithoutClientAck.set(e,wy(Cy({},n),{[r]:t}))}return await this.persist(),r}),Ty(this,`get`,e=>{this.isInitialized();let t=this.messages.get(e);return typeof t>`u`&&(t={}),t}),Ty(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}),Ty(this,`has`,(e,t)=>(this.isInitialized(),typeof this.get(e)[om(t)]<`u`)),Ty(this,`ack`,async(e,t)=>{this.isInitialized();let n=this.messagesWithoutClientAck.get(e);if(typeof n>`u`)return;let r=om(t);delete n[r],Object.keys(n).length===0?this.messagesWithoutClientAck.delete(e):this.messagesWithoutClientAck.set(e,n),await this.persist()}),Ty(this,`del`,async e=>{this.isInitialized(),this.messages.delete(e),this.messagesWithoutClientAck.delete(e),await this.persist()}),this.logger=as(e,this.name),this.core=t}get context(){return rs(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,zs(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,zs(e))}async getRelayerMessages(){let e=await this.core.storage.getItem(this.storageKey);return typeof e<`u`?Bs(e):void 0}async getRelayerMessagesWithoutClientAck(){let e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return typeof e<`u`?Bs(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){let{message:e}=W(`NOT_INITIALIZED`,this.name);throw Error(e)}}},Dy=Object.defineProperty,Oy=Object.defineProperties,ky=Object.getOwnPropertyDescriptors,Ay=Object.getOwnPropertySymbols,jy=Object.prototype.hasOwnProperty,My=Object.prototype.propertyIsEnumerable,Ny=(e,t,n)=>t in e?Dy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Py=(e,t)=>{for(var n in t||={})jy.call(t,n)&&Ny(e,n,t[n]);if(Ay)for(var n of Ay(t))My.call(t,n)&&Ny(e,n,t[n]);return e},Fy=(e,t)=>Oy(e,ky(t)),Iy=(e,t,n)=>Ny(e,typeof t==`symbol`?t:t+``,n),Ly=class extends yg{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,Iy(this,`events`,new xo.EventEmitter),Iy(this,`name`,Hg),Iy(this,`queue`,new Map),Iy(this,`publishTimeout`,(0,B.toMiliseconds)(B.ONE_MINUTE)),Iy(this,`initialPublishTimeout`,(0,B.toMiliseconds)(B.ONE_SECOND*15)),Iy(this,`needsTransportRestart`,!1),Iy(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||Vg,s=n?.prompt||!1,c=n?.tag||0,l=n?.id||Ze().toString(),u=wm(Cm().protocol),d={id:l,method:n?.publishMethod||u.publish,params:Py({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{lh(d.params?.prompt)&&((r=d.params)==null||delete r.prompt),lh(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(Gg.publish,t),e())};this.relayer.events.on(Gg.publish,t);let r=Hs(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(Gg.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 Hs(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)}}),Iy(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=B.FIVE_MINUTES}=a,f=a.id||Ze().toString(),p=wm(Cm().protocol),m=c||p.publish,h={id:f,method:m,params:Py(Fy(Py({},i),{ttl:d,prompt:l,tag:u,attestation:o}),s)},g=`Failed to publish custom payload, please try again. id:${f} tag:${u}`;try{lh(h.params?.prompt)&&((t=h.params)==null||delete t.prompt),lh(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(Gg.publish,t),e())};this.relayer.events.on(Gg.publish,t);let n=Hs(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(Gg.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 Hs(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)}}),Iy(this,`on`,(e,t)=>{this.events.on(e,t)}),Iy(this,`once`,(e,t)=>{this.events.once(e,t)}),Iy(this,`off`,(e,t)=>{this.events.off(e,t)}),Iy(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.relayer=e,this.logger=as(t,this.name),this.registerEventListeners()}get context(){return rs(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(Gg.publish,Py(Py({},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,Fy(Py({},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(et.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(Gg.connection_stalled);return}this.checkQueue()}),this.relayer.on(Gg.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}},Ry=Object.defineProperty,zy=(e,t,n)=>t in e?Ry(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,By=(e,t,n)=>zy(e,typeof t==`symbol`?t:t+``,n),Vy=class{constructor(){By(this,`map`,new Map),By(this,`set`,(e,t)=>{let n=this.get(e);this.exists(e,t)||this.map.set(e,[...n,t])}),By(this,`get`,e=>this.map.get(e)||[]),By(this,`exists`,(e,t)=>this.get(e).includes(t)),By(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)}),By(this,`clear`,()=>{this.map.clear()})}get topics(){return Array.from(this.map.keys())}},Hy=Object.defineProperty,Uy=Object.defineProperties,Wy=Object.getOwnPropertyDescriptors,Gy=Object.getOwnPropertySymbols,Ky=Object.prototype.hasOwnProperty,qy=Object.prototype.propertyIsEnumerable,Jy=(e,t,n)=>t in e?Hy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yy=(e,t)=>{for(var n in t||={})Ky.call(t,n)&&Jy(e,n,t[n]);if(Gy)for(var n of Gy(t))qy.call(t,n)&&Jy(e,n,t[n]);return e},Xy=(e,t)=>Uy(e,Wy(t)),q=(e,t,n)=>Jy(e,typeof t==`symbol`?t:t+``,n),Zy=class extends Sg{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,q(this,`subscriptions`,new Map),q(this,`topicMap`,new Vy),q(this,`events`,new xo.EventEmitter),q(this,`name`,Zg),q(this,`version`,`0.3`),q(this,`pending`,new Map),q(this,`cached`,[]),q(this,`initialized`,!1),q(this,`storagePrefix`,Ng),q(this,`subscribeTimeout`,(0,B.toMiliseconds)(B.ONE_MINUTE)),q(this,`initialSubscribeTimeout`,(0,B.toMiliseconds)(B.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=Cm(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(et.pulse,async()=>{await this.checkPending()}),this.events.on(Xg.created,async e=>{let t=Xg.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),await this.persist()}),this.events.on(Xg.deleted,async e=>{let t=Xg.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),await this.persist()})}),this.relayer=e,this.logger=as(t,this.name),this.clientId=``}get context(){return rs(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=Cm(n);await this.restartToComplete({topic:e,id:t,relay:r}),await this.rpcUnsubscribe(e,t,r);let i=G(`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:wm(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,B.toMiliseconds)(B.ONE_SECOND)),i;let t=await Hs(new Promise(async t=>{let n=r=>{r.topic===e&&(this.events.removeListener(Xg.created,n),t(r.id))};this.events.on(Xg.created,n);try{let r=await Hs(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(Xg.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(Gg.connection_stalled),o)throw e}return null}async rpcBatchSubscribe(e){if(!e.length)return;let t=e[0].relay,n={method:wm(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 Hs(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(Gg.connection_stalled)}}async rpcBatchFetchMessages(e){if(!e.length)return;let t=e[0].relay,n={method:wm(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 Hs(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(Gg.connection_stalled)}return r}rpcUnsubscribe(e,t,n){let r={method:wm(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,Xy(Yy({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(e=>{this.setSubscription(e.id,Yy({},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,Yy({},t)),this.topicMap.set(t.topic,e),this.events.emit(Xg.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}=W(`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(Xg.deleted,Xy(Yy({},n),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(Xg.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(Xg.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}=W(`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=>Xy(Yy({},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 sc((0,B.toMiliseconds)(B.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}=W(`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 om(e+await this.getClientId())}},Qy=Object.defineProperty,$y=Object.getOwnPropertySymbols,eb=Object.prototype.hasOwnProperty,tb=Object.prototype.propertyIsEnumerable,nb=(e,t,n)=>t in e?Qy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,rb=(e,t)=>{for(var n in t||={})eb.call(t,n)&&nb(e,n,t[n]);if($y)for(var n of $y(t))tb.call(t,n)&&nb(e,n,t[n]);return e},J=(e,t,n)=>nb(e,typeof t==`symbol`?t:t+``,n),ib=class extends bg{constructor(e){super(e),J(this,`protocol`,`wc`),J(this,`version`,2),J(this,`core`),J(this,`logger`),J(this,`events`,new xo.EventEmitter),J(this,`provider`),J(this,`messages`),J(this,`subscriber`),J(this,`publisher`),J(this,`name`,Wg),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,B.toMiliseconds)(B.THIRTY_SECONDS+B.FIVE_SECONDS)),J(this,`reconnectTimeout`),J(this,`connectPromise`),J(this,`reconnectInProgress`,!1),J(this,`requestsInFlight`,[]),J(this,`connectTimeout`,(0,B.toMiliseconds)(B.ONE_SECOND*15)),J(this,`request`,async e=>{this.logger.debug(`Publishing Request Payload`);let t=e.id||Ze().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`,()=>{ws()&&(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(Gg.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(Gg.error,e),this.logger.fatal(`Fatal socket error received, closing transport`),this.transportClose()}),J(this,`registerProviderListeners`,()=>{this.provider.on(Kg.payload,this.onPayloadHandler),this.provider.on(Kg.connect,this.onConnectHandler),this.provider.on(Kg.disconnect,this.onDisconnectHandler),this.provider.on(Kg.error,this.onProviderErrorHandler)}),this.core=e.core,this.logger=lg({logger:e.logger??Ug,name:this.name}),this.messages=new Ey(this.logger,e.core),this.subscriber=new Zy(this,this.logger),this.publisher=new Ly(this,this.logger),this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||`wss://relay.walletconnect.org`,Es()?this.packageName=As():Ds()&&(this.bundleId=As()),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 rs(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},Jg.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(Xg.created,a),i())};return await Promise.all([new Promise(e=>{i=e,this.subscriber.on(Xg.created,a)}),new Promise(async(i,a)=>{r=await this.subscriber.subscribe(e,rb({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 Hs(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 Wh())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:qs(B.FIVE_MINUTES),relay:{protocol:`irn`},active:!1};await this.core.pairing.pairings.set(n,e)}this.events.emit(Gg.message,e),await this.recordMessageEvent(e,Jg.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(Kg.disconnect,n),await Hs(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(Kg.disconnect,n),clearTimeout(this.reconnectTimeout)}),await new Promise(async(e,n)=>{let r=()=>{t(Error(`Connection interrupted while trying to subscribe`))};this.provider.once(Kg.disconnect,r),await this.subscriber.start().then(e).catch(n).finally(()=>{this.provider.off(Kg.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,B.toMiliseconds)(t*1))),t++}}startPingTimeout(){var e,t;if(ws())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 lt(new ot(Ls({sdkVersion:qg,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}),Je(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(rb({type:`event`,event:t.id},o)),this.events.emit(t.id,o),await this.acknowledgePayload(e),await this.onMessageEvent(o)}else st(e)&&this.events.emit(Gg.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,Jg.inbound),this.events.emit(Gg.message,e))}async acknowledgePayload(e){let t=ft(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(Kg.payload,this.onPayloadHandler),this.provider.off(Kg.connect,this.onConnectHandler),this.provider.off(Kg.disconnect,this.onDisconnectHandler),this.provider.off(Kg.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await Wh();Jh(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(et.pulse,async()=>{if(!this.transportExplicitlyClosed&&!this.connected&&Zh())try{await this.confirmOnlineStateOrThrow(),await this.transportOpen()}catch(e){this.logger.warn(e,e?.message)}})}async onProviderDisconnect(){clearTimeout(this.pingTimeout),this.events.emit(Gg.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,B.toMiliseconds)(.1)))))}isInitialized(){if(!this.initialized){let{message:e}=W(`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 ab(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function ob(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function sb(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var cb=`[object RegExp]`,lb=`[object String]`,ub=`[object Number]`,db=`[object Boolean]`,fb=`[object Arguments]`,pb=`[object Symbol]`,mb=`[object Date]`,hb=`[object Map]`,gb=`[object Set]`,_b=`[object Array]`,vb=`[object Function]`,yb=`[object ArrayBuffer]`,bb=`[object Object]`,xb=`[object Error]`,Sb=`[object DataView]`,Cb=`[object Uint8Array]`,wb=`[object Uint8ClampedArray]`,Tb=`[object Uint16Array]`,Eb=`[object Uint32Array]`,Db=`[object BigUint64Array]`,Ob=`[object Int8Array]`,kb=`[object Int16Array]`,Ab=`[object Int32Array]`,jb=`[object BigInt64Array]`,Mb=`[object Float32Array]`,Nb=`[object Float64Array]`;function Pb(){}function Fb(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 Ib(e,t,n){return Lb(e,t,void 0,void 0,void 0,void 0,n)}function Lb(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 Rb(e,t,a,o)}return Rb(e,t,a,o)}function Rb(e,t,n,r){if(Object.is(e,t))return!0;let i=sb(e),a=sb(t);if(i===fb&&(i=bb),a===fb&&(a=bb),i!==a)return!1;switch(i){case lb:return e.toString()===t.toString();case ub:return ab(e.valueOf(),t.valueOf());case db:case mb:case pb:return Object.is(e.valueOf(),t.valueOf());case cb:return e.source===t.source&&e.flags===t.flags;case vb: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 hb:if(e.size!==t.size)return!1;for(let[i,a]of e.entries())if(!t.has(i)||!Lb(a,t.get(i),i,e,t,n,r))return!1;return!0;case gb:{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=>Lb(s,i,void 0,e,t,n,r));if(c===-1)return!1;a.splice(c,1)}return!0}case _b:case Cb:case wb:case Tb:case Eb:case Db:case Ob:case kb:case Ab:case jb:case Mb:case Nb: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(!Lb(e[i],t[i],i,e,t,n,r))return!1;return!0;case yb:return e.byteLength===t.byteLength&&Rb(new Uint8Array(e),new Uint8Array(t),n,r);case Sb:return e.byteLength!==t.byteLength||e.byteOffset!==t.byteOffset?!1:Rb(new Uint8Array(e),new Uint8Array(t),n,r);case xb:return e.name===t.name&&e.message===t.message;case bb:{if(!(Rb(e.constructor,t.constructor,n,r)||Fb(e)&&Fb(t)))return!1;let i=[...Object.keys(e),...ob(e)],a=[...Object.keys(t),...ob(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(!Lb(s,c,o,e,t,n,r))return!1}return!0}default:return!1}}finally{n.delete(e),n.delete(t)}}function zb(e,t){return Ib(e,t,Pb)}var Bb=Object.defineProperty,Vb=Object.getOwnPropertySymbols,Hb=Object.prototype.hasOwnProperty,Ub=Object.prototype.propertyIsEnumerable,Wb=(e,t,n)=>t in e?Bb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Gb=(e,t)=>{for(var n in t||={})Hb.call(t,n)&&Wb(e,n,t[n]);if(Vb)for(var n of Vb(t))Ub.call(t,n)&&Wb(e,n,t[n]);return e},Kb=(e,t,n)=>Wb(e,typeof t==`symbol`?t:t+``,n),qb=class extends xg{constructor(e,t,n,r=Ng,i=void 0){super(e,t,n,r),this.core=e,this.logger=t,this.name=n,Kb(this,`map`,new Map),Kb(this,`version`,`0.3`),Kb(this,`cached`,[]),Kb(this,`initialized`,!1),Kb(this,`getKey`),Kb(this,`storagePrefix`,Ng),Kb(this,`recentlyDeleted`,[]),Kb(this,`recentlyDeletedLimit`,200),Kb(this,`init`,async()=>{this.initialized||=(this.logger.trace(`Initialized`),await this.restore(),this.cached.forEach(e=>{this.getKey&&e!==null&&!lh(e)?this.map.set(this.getKey(e),e):gh(e)?this.map.set(e.id,e):_h(e)&&this.map.set(e.topic,e)}),this.cached=[],!0)}),Kb(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())}),Kb(this,`get`,e=>(this.isInitialized(),this.logger.debug(`Getting value`),this.logger.trace({type:`method`,method:`get`,key:e}),this.getData(e))),Kb(this,`getAll`,e=>(this.isInitialized(),e?this.values.filter(t=>Object.keys(e).every(n=>zb(t[n],e[n]))):this.values)),Kb(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=Gb(Gb({},this.getData(e)),t);this.map.set(e,n),await this.persist()}),Kb(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=as(t,this.name),this.storagePrefix=r,this.getKey=i}get context(){return rs(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}=W(`MISSING_OR_INVALID`,`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(t),Error(t)}let{message:t}=W(`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}=W(`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}=W(`NOT_INITIALIZED`,this.name);throw Error(e)}}},Jb=Object.defineProperty,Yb=(e,t,n)=>t in e?Jb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Y=(e,t,n)=>Yb(e,typeof t==`symbol`?t:t+``,n),Xb=class{constructor(e,t){this.core=e,this.logger=t,Y(this,`name`,Qg),Y(this,`version`,`0.3`),Y(this,`events`,new xo.default),Y(this,`pairings`),Y(this,`initialized`,!1),Y(this,`storagePrefix`,Ng),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=rm(),n=await this.core.crypto.setSymKey(t),r=qs(B.FIVE_MINUTES),i={protocol:`irn`},a={topic:n,expiry:r,relay:i,active:!1,methods:e?.methods},o=Rm({protocol:this.core.protocol,version:this.core.version,topic:n,symKey:t,relay:i,expiryTimestamp:r,methods:e?.methods});return this.events.emit(e_.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:[f_.pairing_started]}});this.isValidPair(e,t);let{topic:n,symKey:r,relay:i,expiryTimestamp:a,methods:o}=Fm(e.uri);t.props.properties.topic=n,t.addTrace(f_.pairing_uri_validation_success),t.addTrace(f_.pairing_uri_not_expired);let s;if(this.pairings.keys.includes(n)){if(s=this.pairings.get(n),t.addTrace(f_.existing_pairing),s.active)throw t.setError(p_.active_pairing_already_exists),Error(`Pairing already exists: ${n}. Please try again with a new connection URI.`);t.addTrace(f_.pairing_not_expired)}let c=a||qs(B.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(f_.store_new_pairing),e.activatePairing&&await this.activate({topic:n}),this.events.emit(e_.create,l),t.addTrace(f_.emit_inactive_pairing),this.core.crypto.keychain.has(n)||await this.core.crypto.setSymKey(r,n),t.addTrace(f_.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{t.setError(p_.no_internet_connection)}try{await this.core.relayer.subscribe(n,{relay:i})}catch(e){throw t.setError(p_.subscribe_pairing_topic_failure),e}return t.addTrace(f_.subscribe_pairing_topic_success),l}),Y(this,`activate`,async({topic:e})=>{this.isInitialized();let t=qs(B.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}=Vs();this.events.once(V(`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`,G(`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 Rm({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=it(t,n),i=await this.core.crypto.encode(e,r),a=$g[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=ft(e,n),i=await this.core.crypto.encode(t,r),a=$g[(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=Xe(e,n),i=await this.core.crypto.encode(t,r),a=(await this.core.history.get(t,e)).request.method,o=$g[a]?$g[a].res:$g.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,G(`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=>Js(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(e_.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(()=>{ut(t)?this.events.emit(V(`pairing_ping`,n),{}):tt(t)&&this.events.emit(V(`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(e_.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=G(`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(G(`WC_METHOD_UNSUPPORTED`,e))}),Y(this,`isValidPair`,(e,t)=>{var n;if(!jh(e)){let{message:n}=W(`MISSING_OR_INVALID`,`pair() params: ${e}`);throw t.setError(p_.malformed_pairing_uri),Error(n)}if(!hh(e.uri)){let{message:n}=W(`MISSING_OR_INVALID`,`pair() uri: ${e.uri}`);throw t.setError(p_.malformed_pairing_uri),Error(n)}let r=Fm(e?.uri);if(!((n=r?.relay)!=null&&n.protocol)){let{message:e}=W(`MISSING_OR_INVALID`,`pair() uri#relay-protocol`);throw t.setError(p_.malformed_pairing_uri),Error(e)}if(!(r!=null&&r.symKey)){let{message:e}=W(`MISSING_OR_INVALID`,`pair() uri#symKey`);throw t.setError(p_.malformed_pairing_uri),Error(e)}if(r!=null&&r.expiryTimestamp&&(0,B.toMiliseconds)(r?.expiryTimestamp)<Date.now()){t.setError(p_.pairing_expired);let{message:e}=W(`EXPIRED`,`pair() URI has expired. Please try again with a new connection URI.`);throw Error(e)}}),Y(this,`isValidPing`,async e=>{if(!jh(e)){let{message:t}=W(`MISSING_OR_INVALID`,`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),Y(this,`isValidDisconnect`,async e=>{if(!jh(e)){let{message:t}=W(`MISSING_OR_INVALID`,`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),Y(this,`isValidPairingTopic`,async e=>{if(!uh(e,!1)){let{message:t}=W(`MISSING_OR_INVALID`,`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.pairings.keys.includes(e)){let{message:t}=W(`NO_MATCHING_KEY`,`pairing topic doesn't exist: ${e}`);throw Error(t)}if(Js(this.pairings.get(e).expiry)){await this.deletePairing(e);let{message:t}=W(`EXPIRED`,`pairing topic: ${e}`);throw Error(t)}}),this.core=e,this.logger=as(t,this.name),this.pairings=new qb(this.core,this.logger,this.name,this.storagePrefix)}get context(){return rs(this.logger)}isInitialized(){if(!this.initialized){let{message:e}=W(`NOT_INITIALIZED`,this.name);throw Error(e)}}registerRelayerEvents(){this.core.relayer.on(Gg.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);Je(e)?(this.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e})):st(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(i_.expired,async e=>{let{topic:t}=Ks(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit(e_.expire,{topic:t}))})}},Zb=Object.defineProperty,Qb=(e,t,n)=>t in e?Zb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$b=(e,t,n)=>Qb(e,typeof t==`symbol`?t:t+``,n),ex=class extends _g{constructor(e,t){super(e,t),this.core=e,this.logger=t,$b(this,`records`,new Map),$b(this,`events`,new xo.EventEmitter),$b(this,`name`,n_),$b(this,`version`,`0.3`),$b(this,`cached`,[]),$b(this,`initialized`,!1),$b(this,`storagePrefix`,Ng),$b(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)}),$b(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:qs(B.THIRTY_DAYS)};this.records.set(r.id,r),this.persist(),this.events.emit(t_.created,r)}),$b(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=tt(e)?{error:e.error}:{result:e.result},this.records.set(t.id,t),this.persist(),this.events.emit(t_.updated,t))}),$b(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))),$b(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(t_.deleted,n)}}),this.persist()}),$b(this,`exists`,async(e,t)=>(this.isInitialized(),this.records.has(t)?(await this.getRecord(t)).topic===e:!1)),$b(this,`on`,(e,t)=>{this.events.on(e,t)}),$b(this,`once`,(e,t)=>{this.events.once(e,t)}),$b(this,`off`,(e,t)=>{this.events.off(e,t)}),$b(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.logger=as(t,this.name)}get context(){return rs(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:it(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}=W(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(t_.sync)}async restore(){try{let e=await this.getJsonRpcRecords();if(typeof e>`u`||!e.length)return;if(this.records.size){let{message:e}=W(`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(t_.created,e=>{let t=t_.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.events.on(t_.updated,e=>{let t=t_.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.events.on(t_.deleted,e=>{let t=t_.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.core.heartbeat.on(et.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(t=>{(0,B.toMiliseconds)(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(t_.deleted,t,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){let{message:e}=W(`NOT_INITIALIZED`,this.name);throw Error(e)}}},tx=Object.defineProperty,nx=(e,t,n)=>t in e?tx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,rx=(e,t,n)=>nx(e,typeof t==`symbol`?t:t+``,n),ix=class extends Cg{constructor(e,t){super(e,t),this.core=e,this.logger=t,rx(this,`expirations`,new Map),rx(this,`events`,new xo.EventEmitter),rx(this,`name`,r_),rx(this,`version`,`0.3`),rx(this,`cached`,[]),rx(this,`initialized`,!1),rx(this,`storagePrefix`,Ng),rx(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)}),rx(this,`has`,e=>{try{let t=this.formatTarget(e);return typeof this.getExpiration(t)<`u`}catch{return!1}}),rx(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(i_.created,{target:n,expiration:r})}),rx(this,`get`,e=>{this.isInitialized();let t=this.formatTarget(e);return this.getExpiration(t)}),rx(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(i_.deleted,{target:t,expiration:n})}}),rx(this,`on`,(e,t)=>{this.events.on(e,t)}),rx(this,`once`,(e,t)=>{this.events.once(e,t)}),rx(this,`off`,(e,t)=>{this.events.off(e,t)}),rx(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.logger=as(t,this.name)}get context(){return rs(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 Ws(e);if(typeof e==`number`)return Gs(e);let{message:t}=W(`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(i_.sync)}async restore(){try{let e=await this.getExpirations();if(typeof e>`u`||!e.length)return;if(this.expirations.size){let{message:e}=W(`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}=W(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw this.logger.warn(t),Error(t)}return t}checkExpiry(e,t){let{expiry:n}=t;(0,B.toMiliseconds)(n)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(i_.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(et.pulse,()=>this.checkExpirations()),this.events.on(i_.created,e=>{let t=i_.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()}),this.events.on(i_.expired,e=>{let t=i_.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()}),this.events.on(i_.deleted,e=>{let t=i_.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()})}isInitialized(){if(!this.initialized){let{message:e}=W(`NOT_INITIALIZED`,this.name);throw Error(e)}}},ax=Object.defineProperty,ox=(e,t,n)=>t in e?ax(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sx=(e,t,n)=>ox(e,typeof t==`symbol`?t:t+``,n),cx=class extends wg{constructor(e,t,n){super(e,t,n),this.core=e,this.logger=t,this.store=n,sx(this,`name`,a_),sx(this,`abortController`),sx(this,`isDevEnv`),sx(this,`verifyUrlV3`,c_),sx(this,`storagePrefix`,Ng),sx(this,`version`,2),sx(this,`publicKey`),sx(this,`fetchPromise`),sx(this,`init`,async()=>{this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&(0,B.toMiliseconds)(this.publicKey?.expiresAt)<Date.now()&&(this.logger.debug(`verify v2 public key expired`),await this.removePublicKey()))}),sx(this,`register`,async e=>{if(!Os()||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,So.getDocument)(),t=this.startAbortTimer(B.ONE_SECOND*5),r=await new Promise((r,a)=>{let o=()=>{window.removeEventListener(`message`,c),e.body.removeChild(s),a(`attestation aborted`)};this.abortController.signal.addEventListener(`abort`,o);let s=e.createElement(`iframe`);s.src=i,s.style.display=`none`,s.addEventListener(`error`,o,{signal:this.abortController.signal});let c=i=>{if(i.data&&typeof i.data==`string`)try{let a=JSON.parse(i.data);if(a.type===`verify_attestation`){if(Re(a.attestation).payload.id!==n)return;clearInterval(t),e.body.removeChild(s),this.abortController.signal.removeEventListener(`abort`,o),window.removeEventListener(`message`,c),r(a.attestation===null?``:a.attestation)}}catch(e){this.logger.warn(e)}};e.body.appendChild(s),window.addEventListener(`message`,c,{signal:this.abortController.signal})});return this.logger.debug(r,`jwt attestation`),r}catch(e){this.logger.warn(e)}return``}),sx(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(Re(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)}),sx(this,`fetchAttestation`,async(e,t)=>{this.logger.debug(`resolving attestation: ${e} from url: ${t}`);let n=this.startAbortTimer(B.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}),sx(this,`getVerifyUrl`,e=>{let t=e||`https://verify.walletconnect.org`;return l_.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}),sx(this,`fetchPublicKey`,async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);let e=this.startAbortTimer(B.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)}}),sx(this,`persistPublicKey`,async e=>{this.logger.debug(e,`persisting public key to local storage`),await this.store.setItem(this.storeKey,e),this.publicKey=e}),sx(this,`removePublicKey`,async()=>{this.logger.debug(`removing verify v2 public key from storage`),await this.store.removeItem(this.storeKey),this.publicKey=void 0}),sx(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`)}}),sx(this,`getPublicKey`,async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey()),sx(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}),sx(this,`validateAttestation`,(e,t)=>{let n=Sm(e,t.publicKey),r={hasExpired:(0,B.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=as(t,this.name),this.abortController=new AbortController,this.isDevEnv=nc(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//verify:public:key`}get context(){return rs(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),(0,B.toMiliseconds)(e))}},lx=Object.defineProperty,ux=(e,t,n)=>t in e?lx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dx=(e,t,n)=>ux(e,typeof t==`symbol`?t:t+``,n),fx=class extends Tg{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,dx(this,`context`,u_),dx(this,`registerDeviceToken`,async e=>{let{clientId:t,token:n,notificationType:r,enableEncrypted:i=!1}=e,a=`${d_}/${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=as(t,this.context)}},px=Object.defineProperty,mx=Object.getOwnPropertySymbols,hx=Object.prototype.hasOwnProperty,gx=Object.prototype.propertyIsEnumerable,_x=(e,t,n)=>t in e?px(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,vx=(e,t)=>{for(var n in t||={})hx.call(t,n)&&_x(e,n,t[n]);if(mx)for(var n of mx(t))gx.call(t,n)&&_x(e,n,t[n]);return e},yx=(e,t,n)=>_x(e,typeof t==`symbol`?t:t+``,n),bx=class extends Eg{constructor(e,t,n=!0){super(e,t,n),this.core=e,this.logger=t,yx(this,`context`,y_),yx(this,`storagePrefix`,Ng),yx(this,`storageVersion`,v_),yx(this,`events`,new Map),yx(this,`shouldPersist`,!1),yx(this,`init`,async()=>{if(!nc())try{let e={eventId:tc(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:`INIT`,type:``,properties:{client_id:await this.core.crypto.getClientId(),user_agent:Is(this.core.relayer.protocol,this.core.relayer.version,qg)}}};await this.sendEvent([e])}catch(e){this.logger.warn(e)}}),yx(this,`createEvent`,e=>{let{event:t=`ERROR`,type:n=``,properties:{topic:r,trace:i}}=e,a=tc(),o=this.core.projectId||``,s=vx({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}),yx(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 vx(vx({},r),this.setMethods(r.eventId))}),yx(this,`deleteEvent`,e=>{let{eventId:t}=e;this.events.delete(t),this.shouldPersist=!0}),yx(this,`setEventListeners`,()=>{this.core.heartbeat.on(et.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(e=>{(0,B.fromMiliseconds)(Date.now())-(0,B.fromMiliseconds)(e.timestamp)>86400&&(this.events.delete(e.eventId),this.shouldPersist=!0)})})}),yx(this,`setMethods`,e=>({addTrace:t=>this.addTrace(e,t),setError:t=>this.setError(e,t)})),yx(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)}),yx(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)}),yx(this,`persist`,async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1}),yx(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,vx(vx({},e),this.setMethods(e.eventId)))})}catch(e){this.logger.warn(e)}}),yx(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)}}),yx(this,`sendEvent`,async e=>{let t=this.getAppDomain()?``:`&sp=desktop`;return await fetch(`${b_}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${qg}${t}`,{method:`POST`,body:JSON.stringify(e)})}),yx(this,`getAppDomain`,()=>Ns().url),this.logger=as(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}},xx=Object.defineProperty,Sx=Object.getOwnPropertySymbols,Cx=Object.prototype.hasOwnProperty,wx=Object.prototype.propertyIsEnumerable,Tx=(e,t,n)=>t in e?xx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ex=(e,t)=>{for(var n in t||={})Cx.call(t,n)&&Tx(e,n,t[n]);if(Sx)for(var n of Sx(t))wx.call(t,n)&&Tx(e,n,t[n]);return e},X=(e,t,n)=>Tx(e,typeof t==`symbol`?t:t+``,n),Dx=class e extends pg{constructor(e){var t;super(e),X(this,`protocol`,`wc`),X(this,`version`,2),X(this,`name`,Mg),X(this,`relayUrl`),X(this,`projectId`),X(this,`customStoragePrefix`),X(this,`events`,new xo.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}=cs({opts:ts({level:typeof e?.logger==`string`&&e.logger?e.logger:Pg.logger,name:Mg}),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=as(r,this.name),this.heartbeat=new at,this.crypto=new hy(this,this.logger,e?.keychain),this.history=new ex(this,this.logger),this.expirer=new ix(this,this.logger),this.storage=e!=null&&e.storage?e.storage:new ct(Ex(Ex({},Fg),e?.storageOptions)),this.relayer=new ib({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new Xb(this,this.logger),this.verify=new cx(this,this.logger,this.storage),this.echoClient=new fx(this.projectId||``,this.logger),this.linkModeSupportedApps=[],this.eventClient=new bx(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(Yg,r),n}get context(){return rs(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(e,`Core Initialization Failure at epoch ${Date.now()}`),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}}},Ox=`client`,kx=`wc@2:${Ox}:`,Ax={name:Ox,logger:`error`,controller:!1,relayUrl:`wss://relay.walletconnect.org`},jx=`WALLETCONNECT_DEEPLINK_CHOICE`,Mx=`proposal`,Nx=`Proposal expired`,Px=`session`,Fx=B.SEVEN_DAYS,Ix=`engine`,Lx={wc_sessionPropose:{req:{ttl:B.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:B.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:B.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:B.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:B.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:B.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:B.ONE_DAY,prompt:!1,tag:1104},res:{ttl:B.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:B.ONE_DAY,prompt:!1,tag:1106},res:{ttl:B.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:B.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:B.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:B.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:B.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:B.ONE_DAY,prompt:!1,tag:1112},res:{ttl:B.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:B.ONE_DAY,prompt:!1,tag:1114},res:{ttl:B.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:B.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:B.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:B.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:B.FIVE_MINUTES,prompt:!1,tag:1119}}},Rx={min:B.FIVE_MINUTES,max:B.SEVEN_DAYS},zx={idle:`IDLE`,active:`ACTIVE`},Bx={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:``}},Vx=`request`,Hx=[`wc_sessionPropose`,`wc_sessionRequest`,`wc_authRequest`,`wc_sessionAuthenticate`],Ux=`auth`,Wx=`authKeys`,Gx=`pairingTopics`,Kx=`requests`,qx=`wc@1.5:${Ux}:`,Jx=`${qx}:PUB_KEY`,Yx=Object.defineProperty,Xx=Object.defineProperties,Zx=Object.getOwnPropertyDescriptors,Qx=Object.getOwnPropertySymbols,$x=Object.prototype.hasOwnProperty,eS=Object.prototype.propertyIsEnumerable,tS=(e,t,n)=>t in e?Yx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Z=(e,t)=>{for(var n in t||={})$x.call(t,n)&&tS(e,n,t[n]);if(Qx)for(var n of Qx(t))eS.call(t,n)&&tS(e,n,t[n]);return e},nS=(e,t)=>Xx(e,Zx(t)),Q=(e,t,n)=>tS(e,typeof t==`symbol`?t:t+``,n),rS=class extends jg{constructor(e){super(e),Q(this,`name`,Ix),Q(this,`events`,new xo.default),Q(this,`initialized`,!1),Q(this,`requestQueue`,{state:zx.idle,queue:[]}),Q(this,`sessionRequestQueue`,{state:zx.idle,queue:[]}),Q(this,`emittedSessionRequests`,new cc({limit:500})),Q(this,`requestQueueDelay`,B.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(Lx)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},(0,B.toMiliseconds)(this.requestQueueDelay)))}),Q(this,`connect`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();let t=nS(Z({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t),t.optionalNamespaces=ih(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}=W(`NO_MATCHING_KEY`,`connect() pairing topic: ${c}`);throw Error(e)}let d=await this.client.core.crypto.generateKeyPair(),f=Lx.wc_sessionPropose.req.ttl||B.FIVE_MINUTES,p=qs(f),m=nS(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:Qe()}),h=V(`session_connect`,m.id),{reject:g,resolve:_,done:v}=Vs(f,Nx),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:[m_.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(e){throw t.setError(h_.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(h_.proposal_not_found),n}try{await this.isValidApprove(e)}catch(e){throw this.client.logger.error(`approve() -> isValidApprove() failed`),t.setError(h_.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:m_.session_approve_started,properties:{topic:l,trace:[m_.session_approve_started,m_.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:qs(Fx)},a&&{sessionProperties:a}),o&&{scopedProperties:o}),s&&{sessionConfig:s}),v=K.relay;p.addTrace(m_.subscribing_session_topic);try{await this.client.core.relayer.subscribe(g,{transportType:v,internal:{skipSubscribe:!0}})}catch(e){throw p.setError(h_.subscribe_session_topic_failure),e}p.addTrace(m_.subscribe_session_topic_success);let y=nS(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(m_.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(m_.session_approve_publish_success)}catch(e){throw this.client.logger.error(e),this.client.session.delete(g,G(`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,qs(Fx)),{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:Lx.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}=Vs(),o=Qe(),s=Ze().toString(),c=this.client.session.get(t).namespaces;return this.events.once(V(`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=Qe(),{done:r,resolve:i,reject:a}=Vs();return this.events.once(V(`session_extend`,n),({error:e})=>{e?a(e):i()}),await this.setExpiry(t,qs(Fx)),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=Lx.wc_sessionRequest.req.ttl}=e,a=this.client.session.get(r);a?.transportType===K.relay&&await this.confirmOnlineStateOrThrow();let o=Qe(),s=Ze().toString(),{done:c,resolve:l,reject:u}=Vs(i,`Request expired. Please try again.`);this.events.once(V(`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:nS(Z({},n),{expiryTimestamp:qs(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:nS(Z({},n),{expiryTimestamp:qs(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 $s(this.client.core.storage,jx);await Xs({id:o,topic:r,wcDeepLink:e})}e()}),c()]).then(e=>e[2])}),Q(this,`respond`,async e=>{this.isInitialized();let t=this.client.core.eventClient.createEvent({properties:{topic:e?.topic||(e?.response?.id)?.toString(),trace:[m_.session_request_response_started]}});try{await this.isValidRespond(e)}catch(e){throw t.addTrace(e?.message),t.setError(h_.session_request_response_validation_failure),e}t.addTrace(m_.session_request_response_validation_success);let{topic:n,response:r}=e,{id:i}=r,a=this.client.session.get(n);a.transportType===K.relay&&await this.confirmOnlineStateOrThrow();let o=this.getAppLinkIfEnabled(a.peer.metadata,a.transportType);try{t.addTrace(m_.session_request_response_publish_started),ut(r)?await this.sendResult({id:i,topic:n,result:r.result,throwOnFailedPublish:!0,appLink:o}):tt(r)&&await this.sendError({id:i,topic:n,error:r.error,appLink:o}),this.cleanupAfterResponse(e)}catch(e){throw t.addTrace(e?.message),t.setError(h_.session_request_response_publish_failure),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=Qe(),n=Ze().toString(),{done:r,resolve:i,reject:a}=Vs();this.events.once(V(`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=Ze().toString(),a=Qe();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:G(`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}=W(`MISMATCHED_TOPIC`,`Session or pairing topic not found: ${t}`);throw Error(e)}}),Q(this,`find`,e=>(this.isInitialized(),this.client.session.getAll().filter(t=>fh(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=am(_);if(await Promise.all([this.client.auth.authKeys.set(Jx,{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}=us(i[0]),t=Ru(e,`request`,f);Gu(m)&&(t=Bu(t,m.pop())),m.push(t)}let y=p&&p>Lx.wc_sessionAuthenticate.req.ttl?p:Lx.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:qs(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:qs(Lx.wc_sessionPropose.req.ttl),id:Qe()},{done:S,resolve:C,reject:w}=Vs(y,`Request expired`),T=Qe(),E=V(`session_connect`,x.id),D=V(`session_request`,T),O=async({error:e,session:t})=>{this.events.off(D,k),e?w(e):t&&C({session:t})},k=async e=>{var n,i,a;if(await this.deletePendingAuthRequest(T,{message:`fulfilled`,code:0}),e.error){let t=G(`WC_METHOD_UNSUPPORTED`,`wc_sessionAuthenticate`);return e.error.code===t.code?void 0:(this.events.off(E,O),w(e.error.message))}await this.deleteProposal(x.id),this.events.off(E,O);let{cacaos:o,responder:s}=e.result,c=[],l=[];for(let e of o){await ku({cacao:e,projectId:this.client.core.projectId})||(this.client.logger.error(e,`Signature verification failed`),w(G(`SESSION_SETTLEMENT_FAILED`,`Signature verification failed`)));let{p:t}=e,n=Gu(t.resources),r=[Du(t.iss)],i=Ou(t.iss);if(n){let e=Uu(n),t=Wu(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:qs(Fx),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:`irn`},pairingTopic:h,namespaces:rh([...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})),C({auths:o,session:d})};this.events.once(E,O),this.events.once(D,k);let A;try{if(n){let e=it(`wc_sessionAuthenticate`,b,T);this.client.core.history.set(h,e),A=zm(t,h,await this.client.core.crypto.encode(``,e,{type:2,encoding:Xp}))}else await Promise.all([this.sendRequest({topic:h,method:`wc_sessionAuthenticate`,params:b,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:T}),this.sendRequest({topic:h,method:`wc_sessionPropose`,params:x,expiry:Lx.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:x.id})])}catch(e){throw this.events.off(E,O),this.events.off(D,k),e}return await this.setProposal(x.id,x),await this.setAuthRequest(T,{request:nS(Z({},b),{verifyContext:{}}),pairingTopic:h,transportType:r}),{uri:A??g,response:S}}),Q(this,`approveSessionAuthenticate`,async e=>{let{id:t,auths:n}=e,r=this.client.core.eventClient.createEvent({properties:{topic:t.toString(),trace:[g_.authenticated_session_approve_started]}});try{this.isInitialized()}catch(e){throw r.setError(__.no_internet_connection),e}let i=this.getPendingAuthRequest(t);if(!i)throw r.setError(__.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=am(o),l={type:1,receiverPublicKey:o,senderPublicKey:s},u=[],d=[];for(let e of n){if(!await ku({cacao:e,projectId:this.client.core.projectId})){r.setError(__.invalid_cacao);let e=G(`SESSION_SETTLEMENT_FAILED`,`Signature verification failed`);throw await this.sendError({id:t,topic:c,error:e,encodeOpts:l}),Error(e.message)}r.addTrace(g_.cacaos_verified);let{p:n}=e,i=Gu(n.resources),a=[Du(n.iss)],o=Ou(n.iss);if(i){let e=Uu(i),t=Wu(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(g_.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:qs(Fx),authentication:n,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:`irn`},pairingTopic:i.pairingTopic,namespaces:rh([...new Set(u)],[...new Set(d)]),transportType:a},r.addTrace(g_.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(f,{transportType:a})}catch(e){throw r.setError(__.subscribe_authenticated_session_topic_failure),e}r.addTrace(g_.subscribe_authenticated_session_topic_success),await this.client.session.set(f,p),r.addTrace(g_.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:i.pairingTopic,metadata:i.requester.metadata})}r.addTrace(g_.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(__.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=am(i),s={type:1,receiverPublicKey:i,senderPublicKey:a};await this.sendError({id:t,topic:o,error:n,encodeOpts:s,rpcOpts:Lx.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 Au(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,G(`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(jx).catch(e=>this.client.logger.warn(e)),this.getPendingSessionRequests().forEach(e=>{e.topic===t&&this.deletePendingSessionRequest(e.id,G(`USER_DISCONNECTED`))}),t===this.sessionRequestQueue.queue[0]?.topic&&(this.sessionRequestQueue.state=zx.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(h_.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,G(`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=zx.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,qs(Lx.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||qs(Lx.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=it(n,r,o),f,p=!!c;try{let e=p?Xp:Yp;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(Hx.includes(n)){let e=om(JSON.stringify(d)),t=om(f);m=await this.client.core.verify.register({id:t,decryptedId:e})}let h=Z(Z({},Lx[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=zm(c,t,f);await global.Linking.openURL(e,this.client.name)}else h.tvf=nS(Z({},l),{correlationId:d.id}),s?(h.internal=nS(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=it(`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:Yp}),a=om(JSON.stringify(r)),o=om(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:nS(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=ft(r.id,n),s=await this.client.core.crypto.encode(r.pairingTopic,o,{encoding:Yp}),c=it(`wc_sessionSettle`,i,a?.id),l=await this.client.core.crypto.encode(t,c,{encoding:Yp});this.client.core.history.set(t,c),await this.client.core.relayer.publishCustom({payload:{sessionTopic:t,pairingTopic:r.pairingTopic,sessionProposalResponse:s,sessionSettlementRequest:l},opts:nS(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=ft(t,r),c,l=o&&typeof(global==null?void 0:global.Linking)<`u`;try{let e=l?Xp:Yp;c=await this.client.core.crypto.encode(n,s,nS(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=zm(o,n,c);await global.Linking.openURL(e,this.client.name)}else{let e=Lx[u.request.method].res;e.tvf=nS(Z({},d),{correlationId:t}),i?(e.internal=nS(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=Xe(t,r),c,l=o&&typeof(global==null?void 0:global.Linking)<`u`;try{let e=l?Xp:Yp;c=await this.client.core.crypto.encode(n,s,nS(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=zm(o,n,c);await global.Linking.openURL(e,this.client.name)}else{let e=u.request.method,t=a||Lx[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;Js(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=>{Js(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===zx.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=zx.active;let e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(e){this.client.logger.warn(e)}}this.requestQueue.state=zx.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}=W(`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(p_.proposal_listener_not_found)),this.isValidConnect(Z({},n.params));let s=Z({id:o,pairingTopic:t,expiryTimestamp:a.expiryTimestamp||qs(Lx.wc_sessionPropose.req.ttl),attestation:r,encryptedId:i},a);await this.setProposal(o,s);let c=await this.getVerifyContext({attestationId:r,hash:om(JSON.stringify(n)),encryptedId:i,metadata:s.proposer.metadata});e?.addTrace(f_.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:Lx.wc_sessionPropose.autoReject}),this.client.logger.error(e)}}),Q(this,`onSessionProposeResponse`,async(e,t,n)=>{let{id:r}=t;if(ut(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(tt(t)){await this.deleteProposal(r);let e=V(`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=nS(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(V(`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;ut(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(V(`session_approve`,n),{})):tt(t)&&(await this.client.session.delete(e,G(`USER_DISCONNECTED`)),this.events.emit(V(`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=$h.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:G(`INVALID_UPDATE_REQUEST`)});return}this.isValidUpdate(Z({topic:e},n));try{$h.set(t,r),await this.client.session.update(e,{namespaces:n.namespaces}),await this.sendResult({id:r,topic:e,result:!0})}catch(e){throw $h.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=V(`session_update`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);ut(t)?this.events.emit(V(`session_update`,n),{}):tt(t)&&this.events.emit(V(`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,qs(Fx)),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=V(`session_extend`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);ut(t)?this.events.emit(V(`session_extend`,n),{}):tt(t)&&this.events.emit(V(`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=V(`session_ping`,n);setTimeout(()=>{if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners 2176`);ut(t)?this.events.emit(V(`session_ping`,n),{}):tt(t)&&this.events.emit(V(`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(Gg.publish,async()=>{t(await this.deleteSession({topic:e,id:n}))})}),this.sendResult({id:n,topic:e,result:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:G(`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:om(JSON.stringify(it(`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=V(`session_request`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);ut(t)?this.events.emit(V(`session_request`,n),{result:t.result}):tt(t)&&this.events.emit(V(`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=$h.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}),$h.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}),ut(t)?this.events.emit(V(`session_request`,n),{result:t.result}):tt(t)&&this.events.emit(V(`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:om(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:Lx.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=zx.idle,this.processSessionRequestQueue()},(0,B.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=V(`session_request`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);this.events.emit(V(`session_request`,e.request.id),{error:t})})}),Q(this,`processSessionRequestQueue`,()=>{if(this.sessionRequestQueue.state===zx.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=zx.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:it(`wc_sessionPropose`,nS(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(!jh(e)){let{message:t}=W(`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(lh(t)||await this.isValidPairingTopic(t),!kh(o,!0)){let{message:e}=W(`MISSING_OR_INVALID`,`connect() relays: ${o}`);throw Error(e)}if(n&&!lh(n)&&ch(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(r&&!lh(r)&&ch(r)!==0&&this.validateNamespaces(r,`optionalNamespaces`),i&&!lh(i)&&this.validateSessionProps(i,`sessionProperties`),a&&!lh(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=Eh(e,`connect()`,t);if(n)throw Error(n.message)}),Q(this,`isValidApprove`,async e=>{if(!jh(e))throw Error(W(`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=Dh(n,`approve()`);if(s)throw Error(s.message);let c=zh(o.requiredNamespaces,n,`approve()`);if(c)throw Error(c.message);if(!uh(r,!0)){let{message:e}=W(`MISSING_OR_INVALID`,`approve() relayProtocol: ${r}`);throw Error(e)}if(i&&!lh(i)&&this.validateSessionProps(i,`sessionProperties`),a&&!lh(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(!jh(e)){let{message:t}=W(`MISSING_OR_INVALID`,`reject() params: ${e}`);throw Error(t)}let{id:t,reason:n}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!Mh(n)){let{message:e}=W(`MISSING_OR_INVALID`,`reject() reason: ${JSON.stringify(n)}`);throw Error(e)}}),Q(this,`isValidSessionSettleRequest`,e=>{if(!jh(e)){let{message:t}=W(`MISSING_OR_INVALID`,`onSessionSettleRequest() params: ${e}`);throw Error(t)}let{relay:t,controller:n,namespaces:r,expiry:i}=e;if(!Oh(t)){let{message:e}=W(`MISSING_OR_INVALID`,`onSessionSettleRequest() relay protocol should be a string`);throw Error(e)}let a=vh(n,`onSessionSettleRequest()`);if(a)throw Error(a.message);let o=Dh(r,`onSessionSettleRequest()`);if(o)throw Error(o.message);if(Js(i)){let{message:e}=W(`EXPIRED`,`onSessionSettleRequest()`);throw Error(e)}}),Q(this,`isValidUpdate`,async e=>{if(!jh(e)){let{message:t}=W(`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=Dh(n,`update()`);if(i)throw Error(i.message);let a=zh(r.requiredNamespaces,n,`update()`);if(a)throw Error(a.message)}),Q(this,`isValidExtend`,async e=>{if(!jh(e)){let{message:t}=W(`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(!jh(e)){let{message:t}=W(`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(!Ih(a,r)){let{message:e}=W(`MISSING_OR_INVALID`,`request() chainId: ${r}`);throw Error(e)}if(!Nh(n)){let{message:e}=W(`MISSING_OR_INVALID`,`request() ${JSON.stringify(n)}`);throw Error(e)}if(!Lh(a,r,n.method)){let{message:e}=W(`MISSING_OR_INVALID`,`request() method: ${n.method}`);throw Error(e)}if(i&&!Uh(i,Rx)){let{message:e}=W(`MISSING_OR_INVALID`,`request() expiry: ${i}. Expiry must be a number (in seconds) between ${Rx.min} and ${Rx.max}`);throw Error(e)}}),Q(this,`isValidRespond`,async e=>{var t;if(!jh(e)){let{message:t}=W(`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(!Ph(r)){let{message:e}=W(`MISSING_OR_INVALID`,`respond() response: ${JSON.stringify(r)}`);throw Error(e)}let i=this.client.pendingRequest.get(r.id);if(i.topic!==n){let{message:e}=W(`MISMATCHED_TOPIC`,`Request response topic mismatch. reqId: ${r.id}, expected topic: ${i.topic}, received topic: ${n}`);throw Error(e)}}),Q(this,`isValidPing`,async e=>{if(!jh(e)){let{message:t}=W(`MISSING_OR_INVALID`,`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),Q(this,`isValidEmit`,async e=>{if(!jh(e)){let{message:t}=W(`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(!Ih(i,r)){let{message:e}=W(`MISSING_OR_INVALID`,`emit() chainId: ${r}`);throw Error(e)}if(!Fh(n)){let{message:e}=W(`MISSING_OR_INVALID`,`emit() event: ${JSON.stringify(n)}`);throw Error(e)}if(!Rh(i,r,n.name)){let{message:e}=W(`MISSING_OR_INVALID`,`emit() event: ${JSON.stringify(n)}`);throw Error(e)}}),Q(this,`isValidDisconnect`,async e=>{if(!jh(e)){let{message:t}=W(`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(!uh(n,!1))throw Error(`uri is required parameter`);if(!uh(r,!1))throw Error(`domain is required parameter`);if(!uh(i,!1))throw Error(`nonce is required parameter`);if([...new Set(t.map(e=>us(e).namespace))].length>1)throw Error(`Multi-namespace requests are not supported. Please request single namespace only.`);let{namespace:a}=us(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}=W(`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}=W(`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=ec(e,`topic`)||``,n=decodeURIComponent(ec(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(nc()||Ts()&&(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(e,`Error getting TVF params`)}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=Bx[n];if(n===`sui_signTransaction`)return[cu(t.transactionBytes)];if(n===`near_signTransaction`)return[lu(t)];if(n===`near_signTransactions`)return t.map(e=>lu(e));if(n===`xrpl_signTransactionFor`||n===`xrpl_signTransaction`)return[t.tx_json?.hash];if(n===`polkadot_signTransaction`)return[cg({transaction:e.params.transactionPayload,signature:t.signature})];if(n===`algo_signTxn`)return sh(t)?t.map(e=>du(e)):[du(t)];if(n===`cosmos_signDirect`)return[pu(t)];if(n===`wallet_sendCalls`)return mu(t);if(typeof t==`string`)return[t];let i=t[r.key];if(sh(i))return n===`solana_signAllTransactions`?i.map(e=>su(e)):i;if(typeof i==`string`)return[i]}catch(e){this.client.logger.warn(e,`Error extracting tx hashes from result`)}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(e,`processPendingMessageEvents failed`)}}isInitialized(){if(!this.initialized){let{message:e}=W(`NOT_INITIALIZED`,this.name);throw Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(Gg.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(Jx)?this.client.auth.authKeys.get(Jx):{responseTopic:void 0,publicKey:void 0};try{let e=await this.client.core.crypto.decode(t,n,{receiverPublicKey:a,encoding:i===K.link_mode?Xp:Yp});Je(e)?(this.client.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e,attestation:r,transportType:i,encryptedId:om(n)})):st(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(i_.expired,async e=>{let{topic:t,id:n}=Ks(e.target);if(n&&this.client.pendingRequest.keys.includes(n))return await this.deletePendingSessionRequest(n,W(`EXPIRED`),!0);if(n&&this.client.auth.requests.keys.includes(n))return await this.deletePendingAuthRequest(n,W(`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(e_.create,e=>this.onPairingCreated(e)),this.client.core.pairing.events.on(e_.delete,e=>{this.addToRecentlyDeleted(e.topic,`pairing`)})}isValidPairingTopic(e){if(!uh(e,!1)){let{message:t}=W(`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}=W(`NO_MATCHING_KEY`,`pairing topic doesn't exist: ${e}`);throw Error(t)}if(Js(this.client.core.pairing.pairings.get(e).expiry)){let{message:t}=W(`EXPIRED`,`pairing topic: ${e}`);throw Error(t)}}async isValidSessionTopic(e){if(!uh(e,!1)){let{message:t}=W(`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}=W(`NO_MATCHING_KEY`,`session topic doesn't exist: ${e}`);throw Error(t)}if(Js(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});let{message:t}=W(`EXPIRED`,`session topic: ${e}`);throw Error(t)}if(!this.client.core.crypto.keychain.has(e)){let{message:t}=W(`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(uh(e,!1)){let{message:t}=W(`NO_MATCHING_KEY`,`session or pairing topic doesn't exist: ${e}`);throw Error(t)}else{let{message:t}=W(`MISSING_OR_INVALID`,`session or pairing topic should be a string: ${e}`);throw Error(t)}}async isValidProposalId(e){if(!Ah(e)){let{message:t}=W(`MISSING_OR_INVALID`,`proposal id should be a number: ${e}`);throw Error(t)}if(!this.client.proposal.keys.includes(e)){let{message:t}=W(`NO_MATCHING_KEY`,`proposal id doesn't exist: ${e}`);throw Error(t)}if(Js(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);let{message:t}=W(`EXPIRED`,`proposal id: ${e}`);throw Error(t)}}},iS=class extends qb{constructor(e,t){super(e,t,Mx,kx),this.core=e,this.logger=t}},aS=class extends qb{constructor(e,t){super(e,t,Px,kx),this.core=e,this.logger=t}},oS=class extends qb{constructor(e,t){super(e,t,Vx,kx,e=>e.id),this.core=e,this.logger=t}},sS=class extends qb{constructor(e,t){super(e,t,Wx,qx,()=>Jx),this.core=e,this.logger=t}},cS=class extends qb{constructor(e,t){super(e,t,Gx,qx),this.core=e,this.logger=t}},lS=class extends qb{constructor(e,t){super(e,t,Kx,qx,e=>e.id),this.core=e,this.logger=t}},uS=Object.defineProperty,dS=(e,t,n)=>t in e?uS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,fS=(e,t,n)=>dS(e,typeof t==`symbol`?t:t+``,n),pS=class{constructor(e,t){this.core=e,this.logger=t,fS(this,`authKeys`),fS(this,`pairingTopics`),fS(this,`requests`),this.authKeys=new sS(this.core,this.logger),this.pairingTopics=new cS(this.core,this.logger),this.requests=new lS(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}},mS=Object.defineProperty,hS=(e,t,n)=>t in e?mS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$=(e,t,n)=>hS(e,typeof t==`symbol`?t:t+``,n),gS=class e extends Ag{constructor(e){super(e),$(this,`protocol`,`wc`),$(this,`version`,2),$(this,`name`,Ax.name),$(this,`metadata`),$(this,`core`),$(this,`logger`),$(this,`events`,new xo.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||Ax.name,this.metadata=Ms(e?.metadata),this.signConfig=e?.signConfig;let t=lg({logger:e?.logger||Ax.logger,name:this.name});this.logger=t,this.core=e?.core||new Dx(e),this.session=new aS(this.core,this.logger),this.proposal=new iS(this.core,this.logger),this.pendingRequest=new oS(this.core,this.logger),this.engine=new rS(this),this.auth=new pS(this.core,this.logger)}static async init(t){let n=new e(t);return await n.initialize(),n}get context(){return rs(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}}};function _S(e){return e==null||typeof e!=`object`&&typeof e!=`function`}function vS(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function yS(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var bS=`[object RegExp]`,xS=`[object String]`,SS=`[object Number]`,CS=`[object Boolean]`,wS=`[object Arguments]`,TS=`[object Symbol]`,ES=`[object Date]`,DS=`[object Map]`,OS=`[object Set]`,kS=`[object Array]`,AS=`[object ArrayBuffer]`,jS=`[object Object]`,MS=`[object DataView]`,NS=`[object Uint8Array]`,PS=`[object Uint8ClampedArray]`,FS=`[object Uint16Array]`,IS=`[object Uint32Array]`,LS=`[object Int8Array]`,RS=`[object Int16Array]`,zS=`[object Int32Array]`,BS=`[object Float32Array]`,VS=`[object Float64Array]`;function HS(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function US(e,t){return WS(e,void 0,e,new Map,t)}function WS(e,t,n,r=new Map,i=void 0){let a=i?.(e,t,n,r);if(a!=null)return a;if(_S(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]=WS(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,WS(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(WS(a,void 0,n,r,i));return t}if(typeof Buffer<`u`&&Buffer.isBuffer(e))return e.subarray();if(HS(e)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=WS(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),GS(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),GS(t,e,n,r,i),t}if(e instanceof Blob){let t=new Blob([e],{type:e.type});return r.set(e,t),GS(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,GS(t,e,n,r,i),t}if(typeof e==`object`&&KS(e)){let t=Object.create(Object.getPrototypeOf(e));return r.set(e,t),GS(t,e,n,r,i),t}return e}function GS(e,t,n=e,r,i){let a=[...Object.keys(t),...vS(t)];for(let o=0;o<a.length;o++){let s=a[o],c=Object.getOwnPropertyDescriptor(e,s);(c==null||c.writable)&&(e[s]=WS(t[s],s,n,r,i))}}function KS(e){switch(yS(e)){case wS:case kS:case AS:case MS:case CS:case ES:case BS:case VS:case LS:case RS:case zS:case DS:case SS:case jS:case bS:case OS:case xS:case TS:case NS:case PS:case FS:case IS:return!0;default:return!1}}function qS(e,t){return US(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 SS:case xS:case CS:{let t=new e.constructor(e?.valueOf());return GS(t,e),t}case wS:{let t={};return GS(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}})}function JS(e){return qS(e)}function YS(e){return typeof e==`object`&&!!e&&yS(e)===`[object Arguments]`}function XS(e){return typeof e==`object`&&!!e}function ZS(){}function QS(e){return HS(e)}function $S(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 eC(e){if(_S(e))return e;if(Array.isArray(e)||HS(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 tC(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=nC(i,t,r,new Map)}return i}function nC(e,t,n,r){if(_S(e)&&(e=Object(e)),typeof t!=`object`||!t)return e;if(r.has(t))return eC(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),...vS(t)];for(let a=0;a<i.length;a++){let o=i[a],s=t[o],c=e[o];if(YS(s)&&(s={...s}),YS(c)&&(c={...c}),typeof Buffer<`u`&&Buffer.isBuffer(s)&&(s=JS(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)||XS(c)&&XS(s)?e[o]=nC(c,s,n,r):c==null&&$S(s)?e[o]=nC({},s,n,r):c==null&&QS(s)?e[o]=JS(s):(c===void 0||s!==void 0)&&(e[o]=s):e[o]=l}return e}function rC(e,...t){return tC(e,...t,ZS)}var iC=`error`,aC=`wss://relay.walletconnect.org`,oC=`wc`,sC=`universal_provider`,cC=`${oC}@2:${sC}:`,lC=`https://rpc.walletconnect.org/v1/`,uC=`generic`,dC=`${lC}bundler`,fC=`call_status`,pC=86400,mC={DEFAULT_CHAIN_CHANGED:`default_chain_changed`},hC=Object.defineProperty,gC=Object.defineProperties,_C=Object.getOwnPropertyDescriptors,vC=Object.getOwnPropertySymbols,yC=Object.prototype.hasOwnProperty,bC=Object.prototype.propertyIsEnumerable,xC=(e,t,n)=>t in e?hC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,SC=(e,t)=>{for(var n in t||={})yC.call(t,n)&&xC(e,n,t[n]);if(vC)for(var n of vC(t))bC.call(t,n)&&xC(e,n,t[n]);return e},CC=(e,t)=>gC(e,_C(t));function wC(e,t,n){let r=us(e);return t.rpcMap?.[r.reference]||`${lC}?chainId=${r.namespace}:${r.reference}&projectId=${n}`}function TC(e){return e.includes(`:`)?e.split(`:`)[1]:e}function EC(e){return e.map(e=>`${e.split(`:`)[0]}:${e.split(`:`)[1]}`)}function DC(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 OC(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>t?.chains?.length&&t?.chains?.length>0))}function kC(e={},t={}){return rC(OC(AC(e)),OC(AC(t)))}function AC(e){let t={};if(!ch(e))return t;for(let[n,r]of Object.entries(e)){let e=$m(n)?[n]:r.chains,i=r.methods||[],a=r.events||[],o=r.rpcMap||{},s=eh(n);t[s]=CC(SC(SC({},t[s]),r),{chains:Ys(e,t[s]?.chains),methods:Ys(i,t[s]?.methods),events:Ys(a,t[s]?.events)}),(ch(o)||ch(t[s]?.rpcMap||{}))&&(t[s].rpcMap=SC(SC({},o),t[s]?.rpcMap))}return t}function jC(e){return e.includes(`:`)?e.split(`:`)[2]:e}function MC(e){let t={};for(let[n,r]of Object.entries(e)){let e=r.methods||[],i=r.events||[],a=r.accounts||[];t[n]={chains:$m(n)?[n]:r.chains?r.chains:EC(r.accounts),methods:e,events:i,accounts:a}}return t}function NC(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 PC(e){try{let t=JSON.parse(e);return typeof t==`object`&&!!t&&!Array.isArray(t)}catch{return!1}}var FC={},IC=e=>FC[e],LC=(e,t)=>{FC[e]=t},RC=Object.defineProperty,zC=Object.getOwnPropertySymbols,BC=Object.prototype.hasOwnProperty,VC=Object.prototype.propertyIsEnumerable,HC=(e,t,n)=>t in e?RC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,UC=(e,t)=>{for(var n in t||={})BC.call(t,n)&&HC(e,n,t[n]);if(zC)for(var n of zC(t))VC.call(t,n)&&HC(e,n,t[n]);return e},WC=`eip155`,GC=[`atomic`,`flow-control`,`paymasterService`,`sessionKeys`,`auxiliaryFunds`],KC=e=>e&&e.startsWith(`0x`)?BigInt(e).toString(10):e,qC=e=>e&&e.startsWith(`0x`)?e:`0x${BigInt(e).toString(16)}`,JC=e=>Object.keys(e).filter(e=>GC.includes(e)).reduce((t,n)=>(t[n]=YC(e[n]),t),{}),YC=e=>typeof e==`string`&&PC(e)?JSON.parse(e):e,XC=(e,t,n)=>{let{sessionProperties:r={},scopedProperties:i={}}=e,a={};if(!ch(i)&&!ch(r))return;let o=JC(r);for(let e of n){let n=KC(e);if(!n)continue;a[qC(n)]=o;let r=i?.[`${WC}:${n}`];if(r){let e=r?.[`${WC}:${n}:${t}`];a[qC(n)]=UC(UC({},a[qC(n)]),JC(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},ZC=Object.defineProperty,QC=(e,t,n)=>t in e?ZC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$C=(e,t,n)=>QC(e,typeof t==`symbol`?t:t+``,n),ew,tw=class e{constructor(e){$C(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 ew||=new e(t),ew}},nw=Object.defineProperty,rw=Object.defineProperties,iw=Object.getOwnPropertyDescriptors,aw=Object.getOwnPropertySymbols,ow=Object.prototype.hasOwnProperty,sw=Object.prototype.propertyIsEnumerable,cw=(e,t,n)=>t in e?nw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,lw=(e,t)=>{for(var n in t||={})ow.call(t,n)&&cw(e,n,t[n]);if(aw)for(var n of aw(t))sw.call(t,n)&&cw(e,n,t[n]);return e},uw=(e,t)=>rw(e,iw(t));async function dw(e,t){let n=us(e.result.capabilities.caip345.caip2),r=e.result.capabilities.caip345.transactionHashes,i=await Promise.allSettled(r.map(e=>fw(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 fw(e,t,n){return await n(parseInt(e)).request(it(`eth_getTransactionReceipt`,[t]))}async function pw({sendCalls:e,storage:t}){let n=await t.getItem(fC);await t.setItem(fC,uw(lw({},n),{[e.result.id]:{request:e.request,result:e.result,expiry:qs(pC)}}))}async function mw({resultId:e,storage:t}){let n=await t.getItem(fC);if(n){delete n[e],await t.setItem(fC,n);for(let e in n)Js(n[e].expiry)&&delete n[e];await t.setItem(fC,n)}}async function hw({resultId:e,storage:t}){let n=(await t.getItem(fC))?.[e];if(n&&!Js(n.expiry))return n;await mw({resultId:e,storage:t})}var gw=Object.defineProperty,_w=Object.defineProperties,vw=Object.getOwnPropertyDescriptors,yw=Object.getOwnPropertySymbols,bw=Object.prototype.hasOwnProperty,xw=Object.prototype.propertyIsEnumerable,Sw=(e,t,n)=>t in e?gw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Cw=(e,t)=>{for(var n in t||={})bw.call(t,n)&&Sw(e,n,t[n]);if(yw)for(var n of yw(t))xw.call(t,n)&&Sw(e,n,t[n]);return e},ww=(e,t)=>_w(e,vw(t)),Tw=(e,t,n)=>Sw(e,typeof t==`symbol`?t:t+``,n),Ew=class{constructor(e){Tw(this,`name`,`eip155`),Tw(this,`client`),Tw(this,`chainId`),Tw(this,`namespace`),Tw(this,`httpProviders`),Tw(this,`events`),Tw(this,`storage`),this.namespace=e.namespace,this.events=IC(`events`),this.client=IC(`client`),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain()),this.storage=tw.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(mC.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||wC(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new lt(new dt(n,IC(`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(TC(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=ww(Cw({},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=XC(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:ww(Cw({},r.sessionProperties||{}),{capabilities:ww(Cw({},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 hw({resultId:e.request.params?.[0],storage:this.storage});if(i)try{return await dw(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(it(`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`${dC}?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 pw({sendCalls:{request:n,result:t},storage:this.storage}),t}},Dw=Object.defineProperty,Ow=(e,t,n)=>t in e?Dw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kw=(e,t,n)=>Ow(e,typeof t==`symbol`?t:t+``,n),Aw=class{constructor(e){kw(this,`name`,uC),kw(this,`client`),kw(this,`httpProviders`),kw(this,`events`),kw(this,`namespace`),kw(this,`chainId`),this.namespace=e.namespace,this.events=IC(`events`),this.client=IC(`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(mC.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 us(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=us(e),r=this.namespace?.rpcMap?.[`${n.namespace}:${n.reference}`];t[n.reference]=this.createHttpProvider(e,r)}),t}getHttpProvider(e){let t=us(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||wC(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new lt(new dt(n,IC(`disableProviderPing`)))}},jw=Object.defineProperty,Mw=Object.defineProperties,Nw=Object.getOwnPropertyDescriptors,Pw=Object.getOwnPropertySymbols,Fw=Object.prototype.hasOwnProperty,Iw=Object.prototype.propertyIsEnumerable,Lw=(e,t,n)=>t in e?jw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Rw=(e,t)=>{for(var n in t||={})Fw.call(t,n)&&Lw(e,n,t[n]);if(Pw)for(var n of Pw(t))Iw.call(t,n)&&Lw(e,n,t[n]);return e},zw=(e,t)=>Mw(e,Nw(t)),Bw=(e,t,n)=>Lw(e,typeof t==`symbol`?t:t+``,n),Vw=class e{constructor(e){Bw(this,`client`),Bw(this,`namespaces`),Bw(this,`optionalNamespaces`),Bw(this,`sessionProperties`),Bw(this,`scopedProperties`),Bw(this,`events`,new xo.default),Bw(this,`rpcProviders`,{}),Bw(this,`session`),Bw(this,`providerOpts`),Bw(this,`logger`),Bw(this,`uri`),Bw(this,`disableProviderPing`,!1),this.providerOpts=e,this.logger=lg({logger:e.logger??iC,name:this.providerOpts.name??sC}),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:Rw({},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,ft(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:G(`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=MC(this.session.namespaces);this.namespaces=kC(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=MC(r.namespaces);return this.namespaces=kC(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(!sh(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(e,`Failed to cleanup pending pairings`)}}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 gS.init({core:this.providerOpts.core,logger:this.providerOpts.logger||iC,relayUrl:this.providerOpts.relayUrl||aC,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(e,`Failed to get session`),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=>eh(e)))];LC(`client`,this.client),LC(`events`,this.events),LC(`disableProviderPing`,this.disableProviderPing),e.forEach(e=>{if(!this.session)return;let t=DC(e,this.session);if(t?.length===0)return;let n=EC(t),r=zw(Rw({},kC(this.namespaces,this.optionalNamespaces)[e]),{accounts:t,chains:n});switch(e){case`eip155`:this.rpcProviders[e]=new Ew({namespace:r});break;default:this.rpcProviders[e]=new Aw({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&&sh(e)&&this.events.emit(`accountsChanged`,e.map(jC))}else if(r.name===`chainChanged`){let e=t.chainId,n=t.event.data,r=eh(e),i=NC(e)===NC(n)?e:`${r}:${NC(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=zw(Rw({},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`,zw(Rw({},G(`USER_DISCONNECTED`)),{data:e.topic})))}),this.on(mC.DEFAULT_CHAIN_CHANGED,e=>{this.onChainChanged(zw(Rw({},e),{internal:!0}))})}getProvider(e){return this.rpcProviders[e]||this.rpcProviders[uC]}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=kC(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=>eh(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=eh(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(jC);if(!sh(i))return;this.events.emit(`accountsChanged`,i)}catch(e){this.logger.warn(e,`Failed to emit accountsChanged on chain change`)}}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(`${cC}/${e}${n}`,t)}async getFromStore(e){let t=this.session?.topic||``;return await this.client.core.storage.getItem(`${cC}/${e}${t}`)}async deleteFromStore(e){let t=this.session?.topic||``;await this.client.core.storage.removeItem(`${cC}/${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(cC)&&await this.client.core.storage.removeItem(t)}catch(e){this.logger.warn(e,`Failed to cleanup storage`)}}},Hw=`wc@2:ethereum_provider:`,Uw=`https://rpc.walletconnect.org/v1/`,Ww=[`eth_sendTransaction`,`personal_sign`],Gw=[`eth_accounts`,`eth_requestAccounts`,`eth_sendRawTransaction`,`eth_sign`,`eth_signTransaction`,`eth_signTypedData`,`eth_signTypedData_v3`,`eth_signTypedData_v4`,`eth_sendTransaction`,`personal_sign`,`wallet_switchEthereumChain`,`wallet_addEthereumChain`,`wallet_getPermissions`,`wallet_requestPermissions`,`wallet_registerOnboarding`,`wallet_watchAsset`,`wallet_scanQRCode`,`wallet_sendCalls`,`wallet_getCapabilities`,`wallet_getCallsStatus`,`wallet_showCallsStatus`],Kw=[`chainChanged`,`accountsChanged`],qw=[`chainChanged`,`accountsChanged`,`message`,`disconnect`,`connect`],Jw=async()=>{let{createAppKit:e}=await j(async()=>{let{createAppKit:e}=await import(`./core-DJhku8Ql.js`);return{createAppKit:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]));return e},Yw=Object.defineProperty,Xw=Object.defineProperties,Zw=Object.getOwnPropertyDescriptors,Qw=Object.getOwnPropertySymbols,$w=Object.prototype.hasOwnProperty,eT=Object.prototype.propertyIsEnumerable,tT=(e,t,n)=>t in e?Yw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,nT=(e,t)=>{for(var n in t||={})$w.call(t,n)&&tT(e,n,t[n]);if(Qw)for(var n of Qw(t))eT.call(t,n)&&tT(e,n,t[n]);return e},rT=(e,t)=>Xw(e,Zw(t)),iT=(e,t,n)=>tT(e,typeof t==`symbol`?t:t+``,n);function aT(e){return Number(e[0].split(`:`)[1])}function oT(e){return`0x${e.toString(16)}`}function sT(e){let{chains:t,optionalChains:n,methods:r,optionalMethods:i,events:a,optionalEvents:o,rpcMap:s}=e;if(!sh(t))throw Error(`Invalid chains`);let c={chains:t,methods:r||Ww,events:a||Kw,rpcMap:nT({},t.length?{[aT(t)]:s[aT(t)]}:{})},l=a?.filter(e=>!Kw.includes(e)),u=r?.filter(e=>!Ww.includes(e));if(!n&&!o&&!i&&!(l!=null&&l.length)&&!(u!=null&&u.length))return{required:t.length?c:void 0};let d=l?.length&&u?.length||!n,f={chains:[...new Set(d?c.chains.concat(n||[]):n)],methods:[...new Set(c.methods.concat(i!=null&&i.length?i:Gw))],events:[...new Set(c.events.concat(o!=null&&o.length?o:qw))],rpcMap:s};return{required:t.length?c:void 0,optional:n.length?f:void 0}}var cT=class e{constructor(){iT(this,`events`,new xo.EventEmitter),iT(this,`namespace`,`eip155`),iT(this,`accounts`,[]),iT(this,`signer`),iT(this,`chainId`,1),iT(this,`modal`),iT(this,`rpc`),iT(this,`STORAGE_KEY`,Hw),iT(this,`on`,(e,t)=>(this.events.on(e,t),this)),iT(this,`once`,(e,t)=>(this.events.once(e,t),this)),iT(this,`removeListener`,(e,t)=>(this.events.removeListener(e,t),this)),iT(this,`off`,(e,t)=>(this.events.off(e,t),this)),iT(this,`parseAccount`,e=>this.isCompatibleChainId(e)?this.parseAccountId(e).address:e),this.signer={},this.rpc={}}static async init(t){let n=new e;return await n.initialize(t),n}async request(e,t){return await this.signer.request(e,this.formatChainId(this.chainId),t)}sendAsync(e,t,n){this.signer.sendAsync(e,t,this.formatChainId(this.chainId),n)}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:`eth_requestAccounts`})}async connect(e){var t;if(!this.signer.client)throw Error(`Provider not initialized. Call init() first`);this.loadConnectOpts(e);let{required:n,optional:r}=sT(this.rpc);try{let t=await new Promise(async(t,i)=>{var a,o;this.rpc.showQrModal&&((a=this.modal)==null||a.open(),(o=this.modal)==null||o.subscribeState(e=>{!e.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),i(Error(`Connection request reset. Please try again.`)))}));let s=e!=null&&e.scopedProperties?{[this.namespace]:e.scopedProperties}:void 0;await this.signer.connect(rT(nT({namespaces:nT({},n&&{[this.namespace]:n})},r&&{optionalNamespaces:{[this.namespace]:r}}),{pairingTopic:e?.pairingTopic,scopedProperties:s})).then(e=>{t(e)}).catch(e=>{var t;(t=this.modal)==null||t.showErrorMessage(`Unable to connect`),i(Error(e.message))})});if(!t)return;let i=ds(t.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:i),this.setAccounts(i),this.events.emit(`connect`,{chainId:oT(this.chainId)})}catch(e){throw this.signer.logger.error(e),e}finally{(t=this.modal)==null||t.close()}}async authenticate(e,t){var n;if(!this.signer.client)throw Error(`Provider not initialized. Call init() first`);this.loadConnectOpts({chains:e?.chains});try{let n=await new Promise(async(n,r)=>{var i,a;this.rpc.showQrModal&&((i=this.modal)==null||i.open(),(a=this.modal)==null||a.subscribeState(e=>{!e.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),r(Error(`Connection request reset. Please try again.`)))})),await this.signer.authenticate(rT(nT({},e),{chains:this.rpc.chains}),t).then(e=>{n(e)}).catch(e=>{var t;(t=this.modal)==null||t.showErrorMessage(`Unable to connect`),r(Error(e.message))})}),r=n.session;if(r){let e=ds(r.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:e),this.setAccounts(e),this.events.emit(`connect`,{chainId:oT(this.chainId)})}return n}catch(e){throw this.signer.logger.error(e),e}finally{(n=this.modal)==null||n.close()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on(`session_event`,e=>{let{params:t}=e,{event:n}=t;n.name===`accountsChanged`?(this.accounts=this.parseAccounts(n.data),this.events.emit(`accountsChanged`,this.accounts)):n.name===`chainChanged`?this.setChainId(this.formatChainId(n.data)):this.events.emit(n.name,n.data),this.events.emit(`session_event`,e)}),this.signer.on(`accountsChanged`,e=>{this.accounts=this.parseAccounts(e),this.events.emit(`accountsChanged`,this.accounts)}),this.signer.on(`chainChanged`,e=>{let t=parseInt(e);this.chainId=t,this.events.emit(`chainChanged`,oT(this.chainId)),this.persist()}),this.signer.on(`session_update`,e=>{this.events.emit(`session_update`,e)}),this.signer.on(`session_delete`,e=>{this.reset(),this.events.emit(`session_delete`,e),this.events.emit(`disconnect`,rT(nT({},G(`USER_DISCONNECTED`)),{data:e.topic,name:`USER_DISCONNECTED`}))}),this.signer.on(`display_uri`,e=>{this.events.emit(`display_uri`,e)})}switchEthereumChain(e){this.request({method:`wallet_switchEthereumChain`,params:[{chainId:e.toString(16)}]})}isCompatibleChainId(e){return typeof e==`string`&&e.startsWith(`${this.namespace}:`)}formatChainId(e){return`${this.namespace}:${e}`}parseChainId(e){return Number(e.split(`:`)[1])}setChainIds(e){let t=e.filter(e=>this.isCompatibleChainId(e)).map(e=>this.parseChainId(e));t.length&&(this.chainId=t[0],this.events.emit(`chainChanged`,oT(this.chainId)),this.persist())}setChainId(e){if(this.isCompatibleChainId(e)){let t=this.parseChainId(e);this.chainId=t,this.switchEthereumChain(t)}}parseAccountId(e){let[t,n,r]=e.split(`:`);return{chainId:`${t}:${n}`,address:r}}setAccounts(e){this.accounts=e.filter(e=>this.parseChainId(this.parseAccountId(e).chainId)===this.chainId).map(e=>this.parseAccountId(e).address),this.events.emit(`accountsChanged`,this.accounts)}getRpcConfig(e){let t=e?.chains??[],n=e?.optionalChains??[],r=t.concat(n);if(!r.length)throw Error("No chains specified in either `chains` or `optionalChains`");let i=t.length?e?.methods||Ww:[],a=t.length?e?.events||Kw:[],o=e?.optionalMethods||[],s=e?.optionalEvents||[],c=e?.rpcMap||this.buildRpcMap(r,e.projectId),l=e?.qrModalOptions||void 0;return{chains:t?.map(e=>this.formatChainId(e)),optionalChains:n.map(e=>this.formatChainId(e)),methods:i,events:a,optionalMethods:o,optionalEvents:s,rpcMap:c,showQrModal:!!(e!=null&&e.showQrModal),qrModalOptions:l,projectId:e.projectId,metadata:e.metadata}}buildRpcMap(e,t){let n={};return e.forEach(e=>{n[e]=this.getRpcUrl(e,t)}),n}async initialize(e){if(this.rpc=this.getRpcConfig(e),this.chainId=this.rpc.chains.length?aT(this.rpc.chains):aT(this.rpc.optionalChains),this.signer=await Vw.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata,disableProviderPing:e.disableProviderPing,relayUrl:e.relayUrl,storage:e.storage,storageOptions:e.storageOptions,customStoragePrefix:e.customStoragePrefix,telemetryEnabled:e.telemetryEnabled,logger:e.logger}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal){let e;try{let t=await Jw(),{convertWCMToAppKitOptions:n}=await Promise.resolve().then(function(){return ST}),r=n(rT(nT({},this.rpc.qrModalOptions),{chains:[...new Set([...this.rpc.chains,...this.rpc.optionalChains])],metadata:this.rpc.metadata,projectId:this.rpc.projectId}));if(!r.networks.length)throw Error(`No networks found for WalletConnect·`);e=t(rT(nT({},r),{universalProvider:this.signer,manualWCControl:!0,enableMobileFullScreen:this.rpc.qrModalOptions?.enableMobileFullScreen===!0}))}catch(e){throw console.warn(e),Error(`To use QR modal, please install @reown/appkit package`)}if(e)try{this.modal=e}catch(e){throw this.signer.logger.error(e),Error(`Could not generate WalletConnectModal Instance`)}}}loadConnectOpts(e){if(!e)return;let{chains:t,optionalChains:n,rpcMap:r}=e;t&&sh(t)&&(this.rpc.chains=t.map(e=>this.formatChainId(e)),t.forEach(e=>{this.rpc.rpcMap[e]=r?.[e]||this.getRpcUrl(e)})),n&&sh(n)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=n?.map(e=>this.formatChainId(e)),n.forEach(e=>{this.rpc.rpcMap[e]=r?.[e]||this.getRpcUrl(e)}))}getRpcUrl(e,t){return this.rpc.rpcMap?.[e]||`${Uw}?chainId=eip155:${e}&projectId=${t||this.rpc.projectId}`}async loadPersistedSession(){if(this.session)try{let e=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`),t=this.session.namespaces[`${this.namespace}:${e}`]?this.session.namespaces[`${this.namespace}:${e}`]:this.session.namespaces[this.namespace];this.setChainIds(e?[this.formatChainId(e)]:t?.accounts),this.setAccounts(t?.accounts)}catch(e){this.signer.logger.error(`Failed to load persisted session, clearing state...`),this.signer.logger.error(e),await this.disconnect().catch(e=>this.signer.logger.warn(e))}}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(e){return typeof e==`string`||e instanceof String?[this.parseAccount(e)]:e.map(e=>this.parseAccount(e))}},lT=Object.defineProperty,uT=Object.defineProperties,dT=Object.getOwnPropertyDescriptors,fT=Object.getOwnPropertySymbols,pT=Object.prototype.hasOwnProperty,mT=Object.prototype.propertyIsEnumerable,hT=(e,t,n)=>t in e?lT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,gT=(e,t)=>{for(var n in t||={})pT.call(t,n)&&hT(e,n,t[n]);if(fT)for(var n of fT(t))mT.call(t,n)&&hT(e,n,t[n]);return e},_T=(e,t)=>uT(e,dT(t));function vT(e){if(e)return{"--w3m-font-family":e[`--wcm-font-family`],"--w3m-accent":e[`--wcm-accent-color`],"--w3m-color-mix":e[`--wcm-background-color`],"--w3m-z-index":e[`--wcm-z-index`]?Number(e[`--wcm-z-index`]):void 0,"--w3m-qr-color":e[`--wcm-accent-color`],"--w3m-font-size-master":e[`--wcm-text-medium-regular-size`],"--w3m-border-radius-master":e[`--wcm-container-border-radius`],"--w3m-color-mix-strength":0}}var yT=e=>{let[t,n]=e.split(`:`);return xT({id:n,caipNetworkId:e,chainNamespace:t,name:``,nativeCurrency:{name:``,symbol:``,decimals:8},rpcUrls:{default:{http:[`https://rpc.walletconnect.org/v1`]}}})};function bT(e){var t,n;let r=e.chains?.map(yT).filter(Boolean);if(r.length===0)throw Error(`At least one chain must be specified`);let i=r.find(t=>t.id===e.defaultChain?.id),a={projectId:e.projectId,networks:r,themeMode:e.themeMode,themeVariables:vT(e.themeVariables),chainImages:e.chainImages,connectorImages:e.walletImages,defaultNetwork:i,metadata:_T(gT({},e.metadata),{name:e.metadata?.name||`WalletConnect`,description:e.metadata?.description||`Connect to WalletConnect-compatible wallets`,url:e.metadata?.url||`https://walletconnect.org`,icons:e.metadata?.icons||[`https://walletconnect.org/walletconnect-logo.png`]}),showWallets:!0,featuredWalletIds:e.explorerRecommendedWalletIds===`NONE`?[]:Array.isArray(e.explorerRecommendedWalletIds)?e.explorerRecommendedWalletIds:[],excludeWalletIds:e.explorerExcludedWalletIds===`ALL`?[]:Array.isArray(e.explorerExcludedWalletIds)?e.explorerExcludedWalletIds:[],enableEIP6963:!1,enableInjected:!1,enableCoinbase:!0,enableWalletConnect:!0,features:{email:!1,socials:!1}};if((t=e.mobileWallets)!=null&&t.length||(n=e.desktopWallets)!=null&&n.length){let t=[...(e.mobileWallets||[]).map(e=>({id:e.id,name:e.name,links:e.links})),...(e.desktopWallets||[]).map(e=>({id:e.id,name:e.name,links:{native:e.links.native,universal:e.links.universal}}))],n=[...a.featuredWalletIds||[],...a.excludeWalletIds||[]],r=t.filter(e=>!n.includes(e.id));r.length&&(a.customWallets=r)}return a}function xT(e){return gT({formatters:void 0,fees:void 0,serializers:void 0},e)}var ST=Object.freeze({__proto__:null,convertWCMToAppKitOptions:bT,defineChain:xT});function CT(e){return{name:e.metadata?.shortName||e.name||``,universalLink:e.mobile.universal,deepLink:e.mobile.native}}function wT(e,t){let n=CT(t);if(bo.isMobile&&bo.isAndroid&&n.universalLink)return MT(n.universalLink,e);if(n.deepLink)return jT(n.deepLink,e);if(n.universalLink)return MT(n.universalLink,e);throw new I(`Unsupported wallet ${t.id}`)}function TT(e,t){let n=CT(t);if(n.universalLink)return MT(n.universalLink,e)}var ET=`WALLETCONNECT_DEEPLINK_CHOICE`;function DT(){try{localStorage.removeItem(ET)}catch{}}function OT({href:e,name:t}){try{localStorage.setItem(ET,JSON.stringify({href:e,name:t}))}catch{}}function kT(){try{localStorage.removeItem(ET)}catch{}}function AT(e){return e.startsWith(`http://`)||e.startsWith(`https://`)}function jT(e,t){if(AT(e))return MT(e,t);let n=e;return n.includes(`://`)||(n=e.replaceAll(`/`,``).replaceAll(`:`,``),n=`${n}://`),n.endsWith(`/`)||(n=`${n}/`),{redirect:`${n}wc?uri=${encodeURIComponent(t)}`,href:n}}function MT(e,t){if(!AT(e))return jT(e,t);let n=e;return n.endsWith(`/`)||(n=`${n}/`),{redirect:`${n}wc?uri=${encodeURIComponent(t)}`,href:n}}function NT(e,t){window.open(e,t,`noreferrer noopener`)}var PT=class e{static parse(t){try{return new e(t)}catch{return null}}static throwIfNotWellFormedJwt(e){return o(e),e}get subject(){return this._decoded.sub}get expiration(){return this._decoded.exp}get issuer(){return this._decoded.iss}get audience(){return this._decoded.aud}isExpired(e=0){return Date.now()>=1e3*(this.expiration-e)}constructor(e){this.value=e,this._decoded=o(e)}},FT=class e extends PT{static parse(t){try{return new e(t)}catch{return null}}get appId(){return this._decoded.aid?this._decoded.aid:this.audience}},IT=({style:e,...t})=>(0,yo.jsxs)(`svg`,{viewBox:`0 0 1024 1024`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,style:{height:`28px`,width:`28px`,...e},...t,children:[(0,yo.jsx)(`rect`,{width:`1024`,height:`1024`,fill:`#0052FF`,rx:100,ry:100}),(0,yo.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z`,fill:`white`})]}),LT=`data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PScwIDAgMTAyNCAxMDI0JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHN0eWxlPSdoZWlnaHQ6MjhweDt3aWR0aDoyOHB4Jz48cmVjdCB3aWR0aD0nMTAyNCcgaGVpZ2h0PScxMDI0JyBmaWxsPScjMDA1MkZGJyByeD0nMTAwJyByeT0nMTAwJz48L3JlY3Q+PHBhdGggZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnIGQ9J00xNTIgNTEyQzE1MiA3MTAuODIzIDMxMy4xNzcgODcyIDUxMiA4NzJDNzEwLjgyMyA4NzIgODcyIDcxMC44MjMgODcyIDUxMkM4NzIgMzEzLjE3NyA3MTAuODIzIDE1MiA1MTIgMTUyQzMxMy4xNzcgMTUyIDE1MiAzMTMuMTc3IDE1MiA1MTJaTTQyMCAzOTZDNDA2Ljc0NSAzOTYgMzk2IDQwNi43NDUgMzk2IDQyMFY2MDRDMzk2IDYxNy4yNTUgNDA2Ljc0NSA2MjggNDIwIDYyOEg2MDRDNjE3LjI1NSA2MjggNjI4IDYxNy4yNTUgNjI4IDYwNFY0MjBDNjI4IDQwNi43NDUgNjE3LjI1NSAzOTYgNjA0IDM5Nkg0MjBaJyBmaWxsPSd3aGl0ZSc+PC9wYXRoPjwvc3ZnPg==`,RT=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAALZJREFUaEPtmjEOhDAMBNc/O14GvOzys3CAKK6eAlmaVGl2Zc+kTOU685vkc9/bnD2prZK5/TZY24z9P+g4F5hNh7/GdoG37WlAA5CATwgCxHENYISwQAMQII5rACOEBRqAAHFcAxghLNAABIjjGsAIYYEGIEAc1wBGCAs0AAHiuAYwQligAQgQxzWAEcICDUCAOK4BjBAWaAACxHENYISwQAMQII6fBjr+VHkW3+u+tfyxMpJaDgYzYxb/ALZVAAAAAElFTkSuQmCC`,zT,BT,VT=class extends Oe{async initialize(){await this.importPromise,await this.syncAccounts(),this.initialized=!0,this.emit(`initialized`)}async connect(e){return e.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}disconnect(){this.proxyProvider.walletProvider.disconnect(),this.onDisconnect()}get walletBranding(){return{name:this.displayName,icon:RT,id:`com.coinbase.wallet`}}async promptConnection(){L.debug(`Prompting connection via Base Account`,{wallet:this.walletClientType});try{await this.importPromise,L.rpcRequest(`eth_requestAccounts`,this.walletClientType);let e=await this.proxyProvider.request({method:`eth_requestAccounts`});if(L.rpcResponse(`eth_requestAccounts`,this.walletClientType),!e||e.length===0||!e[0])throw new le(`Unable to retrieve accounts`);this.connected=!0,await this.syncAccounts([e[0]])}catch(e){throw L.connectionFailed(this.walletClientType,e,{method:`base_account`}),_e(e)}}constructor(e,t,n,r,i){super(`base_account`,e,t,n),this.connectorType=`base_account`,this.walletClientType=`base_account`,this.displayName=`Base`,this.setBaseAccountSdk=i,this.proxyProvider=new Te(void 0,this.rpcTimeoutDuration),this.subscribeListeners(),this.baseAccountConfig={...r,appChainIds:[t.id].concat(e.map((e=>e.id)))},zT?(this.proxyProvider.setWalletProvider(zT.getProvider()),this.setBaseAccountSdk(zT)):this.importPromise=j(async()=>{let{createBaseAccountSDK:e}=await import(`./dist-D03ChgcR.js`);return{createBaseAccountSDK:e}},__vite__mapDeps([19,20,3,1,11,12,8,13,14,21,22,5,10,7,6,23])).then((({createBaseAccountSDK:e})=>{zT=e(this.baseAccountConfig),this.proxyProvider.setWalletProvider(zT.getProvider()),this.setBaseAccountSdk(zT)})).catch(console.error)}},HT=[1,11155111,137,10,8453,84532,42161,7777777,43114,56],UT=class extends Oe{async initialize(){await this.syncAccounts(),this.initialized=!0,this.emit(`initialized`)}async connect(e){return e.showPrompt&&await this.promptConnection(),await this.isConnected()?this.getConnectedWallet():null}disconnect(){this.proxyProvider.walletProvider.disconnect(),this.onDisconnect()}get walletBranding(){return{name:this.displayName,icon:LT,id:`com.coinbase.wallet`}}async promptConnection(){L.debug(`Prompting connection via Coinbase Wallet`,{wallet:this.walletClientType});try{L.rpcRequest(`eth_requestAccounts`,this.walletClientType);let e=await this.proxyProvider.request({method:`eth_requestAccounts`});if(L.rpcResponse(`eth_requestAccounts`,this.walletClientType),!e||e.length===0||!e[0])throw new le(`Unable to retrieve accounts`);this.connected=!0,await this.syncAccounts([e[0]])}catch(e){throw L.connectionFailed(this.walletClientType,e,{method:`coinbase_wallet`}),_e(e)}}updateConnectionPreference(e){this.coinbaseWalletConfig={...this.coinbaseWalletConfig,preference:{...this.coinbaseWalletConfig.preference,options:e}},this.walletClientType=e===`smartWalletOnly`?`coinbase_smart_wallet`:`coinbase_wallet`,BT=ea({...this.coinbaseWalletConfig}),this.proxyProvider.setWalletProvider(BT.getProvider())}constructor(e,t,n,r){if(super(`coinbase_wallet`,e,t,n),this.connectorType=`coinbase_wallet`,this.displayName=`Coinbase Wallet`,this.proxyProvider=new Te(void 0,this.rpcTimeoutDuration),this.subscribeListeners(),this.coinbaseWalletConfig={...r,appChainIds:[t.id].concat(e.map((e=>e.id)))},this.walletClientType=this.coinbaseWalletConfig.preference?.options===`smartWalletOnly`?`coinbase_smart_wallet`:`coinbase_wallet`,this.walletClientType===`coinbase_smart_wallet`&&(this.displayName=`Coinbase Smart Wallet`),!BT){let e=this.coinbaseWalletConfig.preference?.options===`eoaOnly`?[]:(this.coinbaseWalletConfig.appChainIds??[]).filter((e=>!HT.includes(e)));e.length>0&&!e.every((e=>d.has(e)))&&console.info(`The configured chains are not supported by Coinbase Smart Wallet: ${e.join(`, `)}`),BT=ea(this.coinbaseWalletConfig)}this.proxyProvider.setWalletProvider(BT.getProvider())}},WT=({style:e,...t}={})=>(0,yo.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,stroke:`currentColor`,strokeWidth:1.5,viewBox:`0 0 24 24`,style:{...e},...t,children:(0,yo.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M9 17.25v1.007a3 3 0 01-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0115 18.257V17.25m6-12V15a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 15V5.25m18 0A2.25 2.25 0 0018.75 3H5.25A2.25 2.25 0 003 5.25m18 0V12a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 12V5.25`})}),GT=({style:e,...t}={})=>(0,yo.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`108`,height:`108`,viewBox:`0 0 108 108`,fill:`none`,style:{height:`28px`,width:`28px`,...e},...t,children:[(0,yo.jsx)(`rect`,{width:`108`,height:`108`,rx:`23`,fill:`#AB9FF2`}),(0,yo.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M46.5267 69.9229C42.0054 76.8509 34.4292 85.6182 24.348 85.6182C19.5824 85.6182 15 83.6563 15 75.1342C15 53.4305 44.6326 19.8327 72.1268 19.8327C87.768 19.8327 94 30.6846 94 43.0079C94 58.8258 83.7355 76.9122 73.5321 76.9122C70.2939 76.9122 68.7053 75.1342 68.7053 72.314C68.7053 71.5783 68.8275 70.7812 69.0719 69.9229C65.5893 75.8699 58.8685 81.3878 52.5754 81.3878C47.993 81.3878 45.6713 78.5063 45.6713 74.4598C45.6713 72.9884 45.9768 71.4556 46.5267 69.9229ZM83.6761 42.5794C83.6761 46.1704 81.5575 47.9658 79.1875 47.9658C76.7816 47.9658 74.6989 46.1704 74.6989 42.5794C74.6989 38.9885 76.7816 37.1931 79.1875 37.1931C81.5575 37.1931 83.6761 38.9885 83.6761 42.5794ZM70.2103 42.5795C70.2103 46.1704 68.0916 47.9658 65.7216 47.9658C63.3157 47.9658 61.233 46.1704 61.233 42.5795C61.233 38.9885 63.3157 37.1931 65.7216 37.1931C68.0916 37.1931 70.2103 38.9885 70.2103 42.5795Z`,fill:`#FFFDF8`})]});function KT(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError(`attempted to use private field on non-instance`);return e}var qT=0;async function JT(e,t){try{L.rpcRequest(`eth_requestAccounts`,t);let n=await e.request({method:`eth_requestAccounts`});return L.rpcResponse(`eth_requestAccounts`,t),n}catch(n){if(n.code===-32002&&n.message?.includes(`Already processing`)){L.debug(`eth_requestAccounts already processing, retrying after delay`,{wallet:t}),await new Promise((e=>setTimeout(e,500))),L.rpcRequest(`eth_requestAccounts`,t);let n=await e.request({method:`eth_requestAccounts`});return L.rpcResponse(`eth_requestAccounts`,t),n}throw n}}var YT=class extends Oe{async initialize(){L.debug(`Initializing injected connector (EIP-6963)`,{wallet:this.walletClientType}),await this.syncAccounts(),this.initialized=!0,this.emit(`initialized`)}async connect(e){if(L.connectionStart(this.walletClientType,`injected`,{showPrompt:e.showPrompt}),e.showPrompt&&await this.promptConnection(),!await this.isConnected())return L.debug(`Not connected after prompt`,{wallet:this.walletClientType}),null;let t=await this.getConnectedWallet();return t&&L.connectionSuccess(this.walletClientType),t}get walletBranding(){return{name:this.providerDetail.info.name,icon:this.providerDetail.info.icon,id:this.providerDetail.info.rdns}}disconnect(){console.warn(`Programmatic disconnect with ${this.providerDetail.info.name} is not yet supported.`)}async promptConnection(){L.debug(`Prompting connection via eth_requestAccounts`,{wallet:this.walletClientType});try{let e=await JT(this.proxyProvider,this.walletClientType);if(!e||e.length===0||!e[0])throw new le(`Unable to retrieve accounts`);await this.syncAccounts([e[0]])}catch(e){throw L.connectionFailed(this.walletClientType,e,{method:`injected`}),_e(e)}}constructor(e,t,n,r,i){super(i||`unknown`,e,t,n),this.connectorType=`injected`,this.proxyProvider=new Te(void 0,this.rpcTimeoutDuration),this.subscribeListeners(),this.providerDetail=r;let a=r.provider;this.proxyProvider.setWalletProvider(a)}},XT=`__private_`+qT+++`__walletBranding`,ZT=class extends Oe{async initialize(){L.debug(`Initializing legacy injected connector`,{wallet:this.walletClientType}),await this.syncAccounts(),this.initialized=!0,this.emit(`initialized`)}async connect(e){if(L.connectionStart(this.walletClientType,`injected (legacy)`,{showPrompt:e.showPrompt}),e.showPrompt&&await this.promptConnection(),!await this.isConnected())return L.debug(`Not connected after prompt`,{wallet:this.walletClientType}),null;let t=await this.getConnectedWallet();return t&&L.connectionSuccess(this.walletClientType),t}get walletBranding(){return KT(this,XT)[XT]??{name:`Browser Extension`,icon:WT,id:`extension`}}disconnect(){L.debug(`Disconnect requested (not supported for legacy injected)`,{wallet:this.walletClientType})}async promptConnection(){L.debug(`Prompting connection via eth_requestAccounts (legacy)`,{wallet:this.walletClientType});try{let e=await JT(this.proxyProvider,this.walletClientType);if(!e||e.length===0||!e[0])throw new le(`Unable to retrieve accounts`);await this.syncAccounts([e[0]])}catch(e){throw L.connectionFailed(this.walletClientType,e,{method:`injected (legacy)`}),_e(e)}}constructor(e,t,n,r,i){super(i??`unknown`,e,t,n),Object.defineProperty(this,XT,{writable:!0,value:void 0}),this.connectorType=`injected`,this.proxyProvider=new Te(void 0,this.rpcTimeoutDuration),this.subscribeListeners(),this.proxyProvider.setWalletProvider(r),i===`metamask`?KT(this,XT)[XT]={name:`MetaMask`,icon:be,id:`io.metamask`}:i===`phantom`&&(KT(this,XT)[XT]={name:`Phantom`,icon:GT,id:`phantom`})}},QT=class extends YT{disconnect(){console.warn(`MetaMask does not support programmatic disconnect.`)}async promptConnection(){L.debug(`Prompting connection via MetaMask`,{wallet:this.walletClientType});try{bo.isMobile||(L.rpcRequest(`wallet_requestPermissions`,this.walletClientType),await this.proxyProvider.request({method:`wallet_requestPermissions`,params:[{eth_accounts:{}}]}),L.rpcResponse(`wallet_requestPermissions`,this.walletClientType)),L.rpcRequest(`eth_requestAccounts`,this.walletClientType);let e=await this.proxyProvider.request({method:`eth_requestAccounts`});if(L.rpcResponse(`eth_requestAccounts`,this.walletClientType),!e||e.length===0||!e[0])throw new le(`Unable to retrieve accounts`);await this.syncAccounts([e[0]])}catch(e){throw L.connectionFailed(this.walletClientType,e,{method:`metamask`}),_e(e)}}},$T=class extends Oe{async initialize(){L.debug(`Initializing WalletConnect V2 connector`,{wallet:this.walletClientType});let e=await this.createProvider();if(this.provider=e,this.proxyProvider.setWalletProvider(e),this.subscribeListeners(),e.session){let e=this.walletProvider?.session?.peer.metadata;L.debug(`Restoring existing WalletConnect session`,{peerName:e?.name,accountsCount:this.walletProvider?.accounts?.length}),this.walletProvider?.session?.peer.metadata.url&&(this.walletEntry=Ae(this.walletProvider?.session?.peer.metadata.url),this.walletClientType=this.walletEntry?.slug||`unknown`),this.connected=!0,await this.syncAccounts()}this.initialized=!0,this.emit(`initialized`)}async connect(e){L.connectionStart(this.walletClientType,`wallet_connect_v2`,{showPrompt:e.showPrompt}),e.showPrompt&&await this.promptConnection();let t=await this.getConnectedWallet();return t&&L.connectionSuccess(this.walletClientType),t}async isConnected(){return!!this.walletProvider?.connected}get walletBranding(){let e=this.walletProvider?.session?.peer.metadata.icons?.[0];return{name:te(this.walletProvider?.session?.peer.metadata.name||``)||`WalletConnect`,icon:typeof e==`string`?e:he,id:this.walletProvider?.session?.peer.metadata.name.toLowerCase()||`wallet_connect_v2`}}async resetConnection(e){let t=this.walletClientType;L.debug(`Resetting WalletConnect connection for new wallet`,{previousWallet:t,newWallet:e}),this.walletProvider&&this.walletProvider.connected&&(await this.walletProvider.disconnect(),this.walletProvider.signer.session=void 0,this.walletClientType=e,this.redirectUri=void 0,this.fallbackUniversalRedirectUri=void 0,DT(),this.onDisconnect())}async promptConnection(){if(this.provider)return L.debug(`Prompting WalletConnect connection`,{wallet:this.walletClientType}),new Promise(((e,t)=>{(async()=>{L.debug(`Enabling WalletConnect provider`,{wallet:this.walletClientType,timeoutMs:this.proxyProvider.rpcTimeoutDuration});let t=``,n=await Promise.race([this.walletProvider?.enable(),this.proxyProvider.walletTimeout().then((()=>{}))]);if(n?.length&&(t=n[0],L.debug(`WalletConnect accounts received`,{address:t,accountsCount:n.length})),!t||t===``)throw new le(`Unable to retrieve address`);this.walletProvider?.session?.peer.metadata.url&&(this.walletEntry=Ae(this.walletProvider?.session?.peer.metadata.url),this.walletClientType=this.walletEntry?.slug||`unknown`,L.debug(`Identified wallet from session`,{wallet:this.walletClientType}),this.proxyProvider.rpcTimeoutDuration=ke(this.rpcConfig,this.walletClientType)),this.connected=!0,await this.syncAccounts(n),e()})().catch((e=>{L.connectionFailed(this.walletClientType,e,{method:`wallet_connect_v2`}),t(e?_e(e):new le(`Unknown error during connection`))}))}));L.warn(`WalletConnect provider not initialized`)}disconnect(){this.walletProvider?.disconnect().then((()=>this.onDisconnect())).catch((()=>console.warn(`Unable to disconnect WalletConnect provider`)))}get walletProvider(){return this.proxyProvider.walletProvider}setWalletProvider(e){this.proxyProvider.setWalletProvider(e)}async createProvider(){L.debug(`Creating WalletConnect EthereumProvider`,{chainsCount:this.chains.length,defaultChainId:this.defaultChain.id});let e={};for(let t of this.chains){let n=ee(t.id,this.chains,this.rpcConfig,this.privyAppId);n&&(e[t.id]=n)}let t=this.shouldEnforceDefaultChainOnConnect?[this.defaultChain.id]:[],n=this.chains.map((e=>e.id));L.debug(`Initializing WalletConnect EthereumProvider`,{requiredChains:t.join(`, `)||`none`,optionalChainsCount:n.length});let r=await cT.init({projectId:this.walletConnectCloudProjectId,chains:t,optionalChains:n,optionalEvents:qw,optionalMethods:Gw,rpcMap:e,showQrModal:!1,metadata:{description:this.privyAppName,name:this.privyAppName,url:window.location.origin,icons:[]}});return r.on(`display_uri`,(e=>{if(L.debug(`WalletConnect URI generated`,{wallet:this.walletClientType,isMobile:bo.isMobile,hasWalletEntry:!!this.walletEntry}),L.debug(`Aborting WalletConnect pairing attempt`),r.signer.abortPairingAttempt(),kT(),!this.showPrivyQrModal)throw new le(`WalletConnect modal not available - Privy handles wallet connections through its own UI`);if(bo.isMobile&&this.walletEntry){let{redirect:t,href:n}=wT(e,this.walletEntry),r=t.startsWith(`http`);L.debug(`Opening mobile wallet via deep link`,{wallet:this.walletEntry.name,redirectType:r?`universal`:`native`}),NT(t,`_self`),OT({href:n,name:this.walletEntry.metadata?.shortName||this.walletEntry.name});let i=TT(e,this.walletEntry);return this.redirectUri=t,this.fallbackUniversalRedirectUri=i?.redirect,this.showPrivyQrModal({native:t,universal:t})}if(L.debug(`Displaying WalletConnect QR code`,{wallet:this.walletEntry?.name||`generic`}),this.redirectUri=void 0,this.walletEntry){let t=TT(e,this.walletEntry);this.fallbackUniversalRedirectUri=t?.redirect}this.showPrivyQrModal({native:e,universal:void 0})})),r.on(`connect`,(()=>{let e=r.session?.peer.metadata;L.debug(`WalletConnect session established`,{peerName:e?.name,peerIcon:e?.icons?.[0]?`present`:`none`}),r.session?.peer.metadata.url&&(this.walletEntry=Ae(r.session?.peer.metadata.url),this.walletClientType=this.walletEntry?.slug||`unknown`)})),r}async enableProvider(){return this.walletProvider?.connected?Promise.resolve(this.walletProvider.accounts):await this.walletProvider?.enable()}setWalletEntry(e,t){this.walletEntry=e,this.showPrivyQrModal=t}constructor({walletConnectCloudProjectId:e,rpcConfig:t,chains:n,defaultChain:r,shouldEnforceDefaultChainOnConnect:i,privyAppId:a,privyAppName:o,walletClientType:s}){super(s||`unknown`,n,r,t),this.connectorType=`wallet_connect_v2`,this.privyAppId=a,this.privyAppName=o,this.walletConnectCloudProjectId=e,this.rpcConfig=t,this.shouldEnforceDefaultChainOnConnect=i,this.proxyProvider=new Te(void 0,this.rpcTimeoutDuration),s&&(this.walletEntry=xe(s),this.walletClientType=s)}},eE=class extends A{get wallets(){let e=new Set;return this.walletConnectors.flatMap((e=>e.wallets)).sort(((e,t)=>e.connectedAt&&t.connectedAt?t.connectedAt-e.connectedAt:0)).filter((t=>{let n=`${t.address}${t.walletClientType}${t.connectorType}${t.meta.id}`;return!e.has(n)&&(e.add(n),!0)}))}async initialize(e){if(L.info(`Starting connector initialization`,{reInit:e??!1}),this.initialized&&!e)return;if(e&&this.removeAllConnectors(),this.externalWalletConfig.disableAllExternalWallets)return void L.info(`All external wallets disabled, skipping initialization`);let t=N({store:this.store,walletList:this.walletList,externalWalletConfig:this.externalWalletConfig,walletChainType:this.walletChainType}).then((e=>{L.info(`Detected injected providers`,{count:e.length,wallets:e.map((e=>e.type)).join(`, `)}),e.forEach((({type:e,eip6963InjectedProvider:t,legacyInjectedProvider:n})=>{this.createEthereumWalletConnector({connectorType:`injected`,walletClientType:e,providers:{eip6963InjectedProvider:t,legacyInjectedProvider:n}})}))}));for(let e of(this.walletList.includes(`coinbase_wallet`)&&this.createEthereumWalletConnector({connectorType:`coinbase_wallet`,walletClientType:`coinbase_wallet`}),this.walletList.includes(`base_account`)&&this.createEthereumWalletConnector({connectorType:`base_account`,walletClientType:`base_account`}),Object.values(Ee)))!e.isInstalled&&this.walletList.includes(e.client)&&([`ethereum-only`,`ethereum-and-solana`].includes(this.walletChainType)&&e.chainTypes.includes(`ethereum`)&&this.createEthereumWalletConnector({connectorType:`null`,walletClientType:e.client,walletConfig:e}),[`ethereum-and-solana`,`solana-only`].includes(this.walletChainType)&&e.chainTypes.includes(`solana`)&&this.addSolanaWalletConnector(new De({id:e.client,name:e.name})));let n=this.walletList.includes(`wallet_connect_qr_solana`)||we(this.walletList)&&this.walletChainType!==`ethereum-only`,r=this.externalWalletConfig.walletConnect.enabled&&(this.walletList.includes(`wallet_connect_qr`)||we(this.walletList))&&this.walletChainType!==`solana-only`,i=this.externalWalletConfig.solana.connectors?.get()||[],a=async e=>{await e.initializeProvider({walletConnectCloudProjectId:this.walletConnectCloudProjectId,privyAppName:this.privyAppName});let t=await e.hideSolanaSessionsFromSignClient();try{this.ethereumWalletConnectInitPromise||=this.initEthereumWalletConnect(),await this.ethereumWalletConnectInitPromise}finally{await e.unhideSolanaSessionsInSignClient(t)}await e.restoreSession()},o=async e=>{let t=e.find((e=>e.walletBranding?.id===`walletconnect_solana`))?.wallet??null;!r||n&&t?n&&!r&&t?await t.initialize({walletConnectCloudProjectId:this.walletConnectCloudProjectId,privyAppName:this.privyAppName}):n&&r&&t&&await a(t):this.ethereumWalletConnectInitPromise||=this.initEthereumWalletConnect()};o(i),i.filter((e=>n||e.walletBranding?.id!==`walletconnect_solana`)).forEach(this.addSolanaWalletConnector),this.externalWalletConfig.solana.connectors?._setOnConnectorsUpdated?.((e=>{o(e),e?.filter((e=>n||e.walletBranding?.id!==`walletconnect_solana`)).forEach(this.addSolanaWalletConnector)})),await t,this.initialized=!0}findWalletConnector(e,t,n){return e===`wallet_connect_v2`?this.walletConnectors.filter(Ce).find((t=>t.connectorType===e&&(!n||t.wallets.some((e=>e.address===n)))))??null:this.walletConnectors.filter(Ce).find((r=>r.connectorType===e&&r.walletClientType===t&&(!n||r.wallets.some((e=>e.address===n)))))??null}findSolanaWalletConnector(e){return this.walletConnectors.filter(ye).find((t=>t.walletClientType===`unknown`?t.walletBranding.id===e:t.walletClientType===e))??null}onInitialized(e){L.connectorInit(e.connectorType,e.walletClientType,{walletsCount:e.wallets.length}),e.wallets.forEach((e=>{let t=this.storedConnections.find((t=>t.address===e.address&&t.connectorType===e.connectorType&&(e.type===`solana`&&t.walletClientType===`unknown`&&e.walletClientType===`unknown`?e.meta.id===t.id:t.walletClientType===e.walletClientType)));t&&(e.connectedAt=t.connectedAt)})),this.emit(`walletsUpdated`),this.emit(`connectorInitialized`)}onWalletsUpdated(e){e.initialized&&this.emit(`walletsUpdated`)}initEthereumWalletConnect(){return this.createEthereumWalletConnector({connectorType:`wallet_connect_v2`,walletClientType:`unknown`}).then((e=>{if(e)return new Promise((t=>{if(e.initialized)return void t();let n=setTimeout((()=>t()),5e3);e.once(`initialized`,(()=>{clearTimeout(n),t()}))}))}))}async createEthereumWalletConnector({connectorType:e,walletClientType:t,providers:n,walletConfig:r}){L.debug(`Creating Ethereum wallet connector`,{connector:e,wallet:t});let i=this.findWalletConnector(e,t);if(i&&Ce(i))return L.debug(`Found existing connector, reusing`,{connector:e,wallet:t}),i instanceof $T&&i.resetConnection(t),i;let a=e===`injected`?t===`metamask`&&n?.eip6963InjectedProvider?new QT(this.chains,this.defaultChain,this.rpcConfig,n?.eip6963InjectedProvider,`metamask`):t===`metamask`&&n?.legacyInjectedProvider?new ZT(this.chains,this.defaultChain,this.rpcConfig,n?.legacyInjectedProvider,`metamask`):t===`phantom`&&n?.legacyInjectedProvider?new ZT(this.chains,this.defaultChain,this.rpcConfig,n?.legacyInjectedProvider,`phantom`):n?.legacyInjectedProvider&&t===`unknown_browser_extension`?new ZT(this.chains,this.defaultChain,this.rpcConfig,n?.legacyInjectedProvider):n?.eip6963InjectedProvider?new YT(this.chains,this.defaultChain,this.rpcConfig,n?.eip6963InjectedProvider,t):void 0:e===`coinbase_wallet`?new UT(this.chains,this.defaultChain,this.rpcConfig,this.externalWalletConfig.coinbaseWallet.config):e===`base_account`?new VT(this.chains,this.defaultChain,this.rpcConfig,this.externalWalletConfig.baseAccount.config,this.setBaseAccountSdk):e===`null`?r?new Se({id:r.client,name:r.name,defaultChain:this.defaultChain,walletClientType:r.client}):null:new $T({walletConnectCloudProjectId:this.walletConnectCloudProjectId,rpcConfig:this.rpcConfig,chains:this.chains,defaultChain:this.defaultChain,shouldEnforceDefaultChainOnConnect:this.shouldEnforceDefaultChainOnConnect,privyAppId:this.privyAppId,privyAppName:this.privyAppName,walletClientType:t});return a?(L.connectorCreated(e,t),this.addWalletConnector(a)):L.debug(`No connector created`,{connector:e,wallet:t}),a||null}addWalletConnector(e){L.debug(`Adding wallet connector`,{connector:e.connectorType,wallet:e.walletClientType}),this.walletConnectors.push(e),e.on(`initialized`,(()=>this.onInitialized(e))),e.on(`walletsUpdated`,(()=>this.onWalletsUpdated(e))),e.initialize().catch((t=>{L.error(`Failed to initialize connector`,t,{connector:e.connectorType,wallet:e.walletClientType})}))}setWalletList(e){this.walletList=e,this.initialized&&this.initialize(!0).catch(console.error)}removeAllConnectors(){for(let e of this.walletConnectors)e.removeAllListeners();this.walletConnectors=[]}constructor(e,t,n,r,i,a,o,s,c,l,u,d,f){super(),this.ethereumWalletConnectInitPromise=null,this.addSolanaWalletConnector=async e=>{let t=this.findSolanaWalletConnector(e.walletClientType);if(!t||t.connectorType===`null`){if(t?.connectorType===`null`){let e=this.walletConnectors.indexOf(t);this.walletConnectors.splice(e,1)}this.addWalletConnector(e)}},L.setEnabled(f??!1),L.info(`ConnectorManager initializing`,{walletChainType:d||void 0,walletListCount:o.length}),this.privyAppId=e,this.walletConnectCloudProjectId=t,this.rpcConfig=n,this.chains=r,this.defaultChain=i,this.walletConnectors=[],this.initialized=!1,this.store=a,this.walletList=o,this.shouldEnforceDefaultChainOnConnect=s,this.externalWalletConfig=c,this.privyAppName=l,this.walletChainType=d||`ethereum-only`,this.setBaseAccountSdk=u,this.storedConnections=ge()}},tE=se((()=>({identityToken:null}))),nE=[Et,en,cn],rE=class{async get(e,t){try{return await this.baseFetch(e,t)}catch(e){throw de(e)}}async post(e,t,n){try{return await this.baseFetch(e,{method:`POST`,...t?{body:t}:{},...n})}catch(e){throw de(e)}}async delete(e,t){try{return await this.baseFetch(e,{method:`DELETE`,...t})}catch(e){throw de(e)}}constructor({appId:e,appClientId:t,client:n,defaults:r}){this.appId=e,this.appClientId=t,this.clientAnalyticsId=n.clientAnalyticsId,this.sdkVersion=S,this.client=n,this.defaults=r,this.fallbackApiUrl=n.fallbackApiUrl,this.baseFetch=ce.create({baseURL:this.defaults.baseURL,timeout:this.defaults.timeout,retry:3,retryDelay:500,retryStatusCodes:[408,409,425,500,502,503,504],credentials:`include`,onRequest:async({request:e,options:t})=>{let n=new Headers(t.headers);n.set(`privy-app-id`,this.appId),this.appClientId&&n.set(`privy-client-id`,this.appClientId),n.set(`privy-ca-id`,this.clientAnalyticsId||``),n.set(`privy-client`,`react-auth:${this.sdkVersion}`);let r=nE.includes(e.toString());if(!n.has(`authorization`)){let e=await this.client.getAccessToken({disableAutoRefresh:r});e!==null&&n.set(`authorization`,`Bearer ${e}`)}t.headers=n,t.retryDelay&&typeof t.retryDelay==`number`&&(t.retryDelay=3*t.retryDelay)},onRequestError:({error:e})=>{if(e instanceof DOMException&&e.name===`AbortError`)throw new ue}})}},iE=e=>({rpId:e.rp_id,challenge:e.challenge,allowCredentials:e.allow_credentials?.map((e=>({id:e.id,type:e.type,transports:e.transports})))||[],timeout:e.timeout,extensions:{appid:e.extensions?.app_id,credProps:e.extensions?.cred_props,hmacCreateSecret:e.extensions?.hmac_create_secret},userVerification:e.user_verification}),aE=Symbol(`cross-tab-user-sync-plugin`),oE=class{async authenticate(){if(!this.api)throw new I(`Auth flow has no API instance`);try{return await this.api.post(xt,{token:this.meta.token})}catch(e){throw de(e)}}async link(){if(!this.api)throw new I(`Auth flow has no API instance`);try{return await this.api.post(Lt,{token:this.meta.token})}catch(e){throw de(e)}}constructor(e){this.meta={token:e}}};function sE(e){return e?{"privy-ui":`t`}:void 0}var cE=class{async authenticate(){if(!this.api)throw new I(`Auth flow has no API instance`);if(!this.meta.email||!this.meta.emailCode)throw new I(`Email and email code must be set prior to calling authenticate.`);try{return await this.api.post(yt,{email:this.meta.email,code:this.meta.emailCode,mode:this.meta.disableSignup?`no-signup`:`login-or-sign-up`})}catch(e){throw de(e)}}async link(){if(!this.api)throw new I(`Auth flow has no API instance`);if(!this.meta.email||!this.meta.emailCode)throw new I(`Email and email code must be set prior to calling authenticate.`);try{return await this.api.post(At,{email:this.meta.email,code:this.meta.emailCode})}catch(e){throw de(e)}}async sendCodeEmail({email:e,captchaToken:t,withPrivyUi:n}){if(!this.api)throw new I(`Auth flow has no API instance`);if(e&&(this.meta.email=e),t&&(this.meta.captchaToken=t),!this.meta.email)throw new I(`Email must be set when initialzing authentication.`);let r=sE(n);try{return await this.api.post(Ut,{email:this.meta.email,token:this.meta.captchaToken},{headers:{...r}})}catch(e){throw de(e)}}constructor({email:e,captchaToken:t,disableSignup:n}){this.meta={email:e,captchaToken:t,disableSignup:n??!1}}},lE=class extends cE{async link(){if(!this.api)throw new I(`Auth flow has no API instance`);if(!this.meta.email||!this.meta.emailCode||!this.meta.oldAddress)throw new I(`Email, email code, and an old email address must be set prior to calling update.`);try{return await this.api.post(_t,{oldAddress:this.meta.oldAddress,newAddress:this.meta.email,code:this.meta.emailCode})}catch(e){throw de(e)}}constructor(e,t,n){super({email:t,captchaToken:n}),this.meta={email:t,captchaToken:n,oldAddress:e,disableSignup:!1}}},uE=class{getOrCreateGuestCredential(e){let t=_(e);if(P()){if(F.get(t))return F.get(t);{let e=l(Kt(32));return F.put(t,e),e}}return l(Kt(32))}async authenticate(){if(!this.api)throw new I(`Auth flow has no API instance`);try{return await this.api.post(kt,{guest_credential:this.meta.guestCredential})}catch(e){throw de(e)}}async link(){throw Error(`Linking is not supported for the guest flow`)}constructor(e){this.meta={guestCredential:this.getOrCreateGuestCredential(e)}}};function dE(){return typeof window<`u`&&window.location.protocol===`chrome-extension:`&&`chrome`in window}function fE(){if(dE())return window.chrome?.runtime?.id}function pE(){return dE()?typeof window.chrome?.identity?.launchWebAuthFlow==`function`:!1}async function mE(e){return new Promise(((t,n)=>{pE()?window.chrome.identity.launchWebAuthFlow({url:e,interactive:!0},(async e=>{try{let n=function(){if(dE())return window.chrome?.runtime?.lastError?.message}();if(n||!e){let e=`WebAuthFlow failed: ${n||`Response URI missing`}`;throw Error(e)}let r=new URL(e),i=fE();if(!i)throw Error(`Invalid extension context`);if(r.protocol===`chrome-extension:`){if(r.hostname!==i)throw Error(`Invalid responseUri origin`)}else{if(r.protocol!==`https:`)throw Error(`Invalid responseUri protocol`);{let e=r.hostname.split(`.`);if(e.length!==3||e[1]!==`chromiumapp`||e[2]!==`org`||e[0]!==i)throw Error(`Invalid responseUri origin`)}}let a=r.searchParams.get(`privy_oauth_state`),o=r.searchParams.get(`privy_oauth_code`);if(!a||!o)throw Error(`Invalid responseUri - missing required parameters`);t({privyOAuthState:a,privyOAuthCode:o})}catch(e){n(e)}})):n(Error(`Chrome identity API not available`))}))}var hE=class{addCaptchaToken(e){this.meta.captchaToken=e}isActive(){return!!(this.meta.authorizationCode&&this.meta.stateCode&&this.meta.provider)}async authenticate(){if(!this.api)throw new I(`Auth flow has no API instance`);if(!this.meta.authorizationCode||!this.meta.stateCode)throw new I(`[OAuth AuthFlow] Authorization and state codes code must be set prior to calling authenticate.`);if(this.meta.authorizationCode===`undefined`)throw new I(`User denied confirmation during OAuth flow`);let e=$t();try{let t=await this.api.post(Qt,{authorization_code:this.meta.authorizationCode,state_code:this.meta.stateCode,code_verifier:e,mode:this.meta.disableSignup?`no-signup`:`login-or-sign-up`});return F.del(p),F.del(b),F.del(C),t}catch(e){let t=de(e);throw t.privyErrorCode?new I(t.message||`Invalid code during OAuth flow.`,void 0,t.privyErrorCode):t.message===`User denied confirmation during OAuth flow`?new I(`Invalid code during oauth flow.`,void 0,pe.OAUTH_USER_DENIED):new I(`Invalid code during OAuth flow.`,void 0,pe.UNKNOWN_AUTH_ERROR)}}async link(){if(!this.api)throw new I(`Auth flow has no API instance`);if(!this.meta.authorizationCode||!this.meta.stateCode)throw new I(`[OAuth AuthFlow] Authorization and state codes code must be set prior to calling link.`);if(this.meta.authorizationCode===`undefined`)throw new I(`User denied confirmation during OAuth flow`);let e=F.get(p);if(!e)throw new I(`Authentication error.`);try{let t=await this.api.post(Gt,{authorization_code:this.meta.authorizationCode,state_code:this.meta.stateCode,code_verifier:e});return F.del(p),t}catch(e){throw de(e)}}async getAuthorizationUrl(){if(!this.api)throw new I(`Auth flow has no API instance`);if(!this.meta.provider)throw new I(`Provider must be set when initializing OAuth authentication.`);let e=dn();F.put(p,e);let t=sn();F.put(E,t);let n=await It(e);this.meta.withPrivyUi||F.put(`privy:headless_oauth`,!0),this.meta.disableSignup?F.put(C,!0):F.del(C);let r=sE(this.meta.withPrivyUi),i=window.location.href,a=function(){let e=fE();if(e)return`https://${e}.chromiumapp.org`}();a&&(i=a);try{return await this.api.post(rn,{provider:this.meta.provider,redirect_to:this.meta.customOAuthRedirectUrl||i,token:this.meta.captchaToken,code_challenge:n,state_code:t},{headers:{...r}})}catch(e){throw de(e)}}constructor(e){this.meta=e}},gE=class{execute(e){return this.promise===null&&(this.promise=(async()=>{try{return await this.fn(e)}finally{this.promise=null}})()),this.promise}constructor(e){this.promise=null,this.fn=e}},_E=({address:e,chainId:t,nonce:n})=>`${window.location.host} wants you to sign in with your Ethereum account:\n${e}\n\nBy signing, you are proving you own this wallet and logging in. This does not initiate a transaction or cost any fees.\n\nURI: ${window.location.origin}\nVersion: 1\nChain ID: ${t}\nNonce: ${n}\nIssued At: ${new Date().toISOString()}\nResources:\n- https://privy.io`,vE=class{get meta(){return{connectorType:this.wallet?.connectorType,walletClientType:this.wallet?.walletClientType,chainId:this.wallet?.chainId,address:this.wallet?.address,disableSignup:this._meta.disableSignup}}async authenticate(){if(!this.client)throw new I(`SiweFlow has no client instance`);try{if(this.preparedMessage&&this.signature)return await this.client.authenticateWithSiweInternal({message:this.preparedMessage,signature:this.signature,chainId:this.wallet?.chainId,walletClientType:this.walletClientType??this.wallet?.walletClientType,connectorType:this.connectorType??this.wallet?.connectorType,mode:this._meta.disableSignup?`no-signup`:`login-or-sign-up`});if(!this.wallet)throw new I(`SiweFlow has no wallet instance`);let{message:e,signature:t}=await this.sign();return await this.client.authenticateWithSiweInternal({message:e,signature:t,chainId:this.wallet.chainId,walletClientType:this.wallet.walletClientType,connectorType:this.wallet.connectorType,mode:this.meta.disableSignup?`no-signup`:`login-or-sign-up`})}catch(e){throw de(e)}}async link(){if(!this.client)throw new I(`SiweFlow has no client instance`);try{if(!this.wallet)throw new I(`SiweFlow has no wallet instance`);let{message:e,signature:t}=await this.sign();return await this.client.linkWithSiweInternal({message:e,signature:t,chainId:this.wallet.chainId,walletClientType:this.wallet.walletClientType,connectorType:this.wallet.connectorType})}catch(e){throw de(e)}}async sign(){if(!this.client)throw new I(`SiweFlow has no client instance`);if(await this.buildMessage(),!this.preparedMessage)throw new I(`Could not prepare SIWE message`);if(!this.wallet)throw new I(`SiweFlow has no wallet instance`);let e=await this.wallet.sign(this.preparedMessage);return{message:this.preparedMessage,signature:e}}async _getNonceOnce(){if(!this.client)throw new I(`SiweFlow has no client instance`);if(!this.wallet)throw new I(`UI SiweFlow has no wallet instance`);return await this.client.generateSiweNonce({address:this.wallet.address,captchaToken:this.captchaToken})}async buildMessage(){if(!this.client)throw new I(`SiweFlow has no client instance`);if(!this.wallet)throw new I(`SiweFlow has no wallet instance`);let e=this.wallet.address,t=this.wallet.chainId.replace(`eip155:`,``);return this.nonce||=await this.getNonceOnce.execute(),this.preparedMessage=_E({address:e,chainId:t,nonce:this.nonce}),this.preparedMessage}constructor(e,t,n,r=!1,i){this._meta={disableSignup:!1},this.getNonceOnce=new gE(this._getNonceOnce.bind(this)),this.wallet=t,this.captchaToken=n,this.client=e,this._meta.disableSignup=r,this.preparedMessage=i?.message,this.signature=i?.signature,this.walletClientType=i?.walletClientType,this.connectorType=i?.connectorType}},yE=class{async authenticate(){if(!this.api)throw new I(`Auth flow has no API instance`);if(!this.meta.phoneNumber||!this.meta.smsCode)throw new I(`phone number and sms code must be set prior to calling authenticate.`);try{return await this.api.post(pn,{phoneNumber:this.meta.phoneNumber,code:this.meta.smsCode,mode:this.meta.disableSignup?`no-signup`:`login-or-sign-up`})}catch(e){throw de(e)}}async link(){if(!this.api)throw new I(`Auth flow has no API instance`);if(!this.meta.phoneNumber||!this.meta.smsCode)throw new I(`phone number and sms code must be set prior to calling authenticate.`);try{return await this.api.post(Rt,{phoneNumber:this.meta.phoneNumber,code:this.meta.smsCode})}catch(e){throw de(e)}}async sendSmsCode({phoneNumber:e,captchaToken:t,withPrivyUi:n}){if(!this.api)throw new I(`Auth flow has no API instance`);if(e&&(this.meta.phoneNumber=e),t&&(this.meta.captchaToken=t),!this.meta.phoneNumber)throw new I(`phone nNumber must be set when initialzing authentication.`);let r=sE(n);try{return await this.api.post(ln,{phoneNumber:this.meta.phoneNumber,token:this.meta.captchaToken},{headers:{...r}})}catch(e){throw de(e)}}constructor({phoneNumber:e,captchaToken:t,disableSignup:n}){this.meta={phoneNumber:e,captchaToken:t,disableSignup:n??!1}}},bE=class extends yE{async link(){if(!this.api)throw new I(`Auth flow has no API instance`);if(!this.meta.phoneNumber||!this.meta.smsCode||!this.meta.oldPhoneNumber)throw new I(`Phone number, sms code, and an old phone number must be set prior to calling update.`);try{return await this.api.post(zt,{old_phone_number:this.meta.oldPhoneNumber,new_phone_number:this.meta.phoneNumber,code:this.meta.smsCode})}catch(e){throw de(e)}}constructor(e,t,n){super({phoneNumber:t,captchaToken:n}),this.meta={phoneNumber:t,captchaToken:n,oldPhoneNumber:e,disableSignup:!1}}},xE,SE=((xE={}).PRIVY=`privy_access_token`,xE.CUSTOMER=`customer_access_token`,xE),CE=class{get token(){return this.privyAccessToken||this.customerAccessToken}getToken(e){return e===`privy_access_token`?this.privyAccessToken:this.customerAccessToken}get customerAccessToken(){return this._getToken(O)}get privyAccessToken(){return this._getToken(f)}_getToken(e){try{let t=F.get(e);return typeof t==`string`?PT.throwIfNotWellFormedJwt(t):null}catch(e){return console.error(e),this.destroyLocalState(),null}}get refreshToken(){try{let e=F.get(h);return typeof e==`string`?e:null}catch(e){return console.error(e),this.destroyLocalState(),null}}getProviderAccessToken(e){try{let t=F.get(v(e));if(typeof t!=`string`)return null;{let n=new PT(t);return n.isExpired()?(F.del(v(e)),null):n.value}}catch(e){return console.error(e),null}}get mightHaveServerCookies(){try{let e=c.get(w);return e!==void 0&&e.length>0}catch(e){console.error(e)}return!1}hasRefreshCredentials(e=`privy_access_token`){let t=typeof this.getToken(e)==`string`,n=typeof this.refreshToken==`string`&&this.refreshToken!==`deprecated`;return this.mightHaveServerCookies||t&&n}hasActiveAccessToken(e){let t=PT.parse(this.getToken(e));return t!==null&&!t.isExpired(30)}authenticate(e){return this.authenticateOnce.execute(e)}link(e){return this.linkOnce.execute(e)}refresh(){return this.refreshOnce.execute()}destroy(){return this.destroyOnce.execute()}storeProviderAccessToken(e,t){typeof t==`string`?F.put(v(e),t):F.del(v(e))}updateIdentityToken(e){typeof e==`string`?this.storeIdentityToken(e):this.clearIdentityToken()}async _authenticate(e){try{let t=await e.authenticate(),{user:n,is_new_user:r,oauth_tokens:i}=t;this.handleTokenResponse(t);let a=i?{provider:i.provider,accessToken:i.access_token,accessTokenExpiresInSeconds:i.access_token_expires_in_seconds,refreshToken:i.refresh_token,refreshTokenExpiresInSeconds:i.refresh_token_expires_in_seconds,scopes:i.scopes}:void 0;return this._trackAuthenticateEvents(e,r),{user:oe(n),isNewUser:r,oAuthTokens:a}}catch(e){throw console.warn(`Error authenticating session`),fe(e)}}_trackAuthenticateEvents(e,t){let n=function(e){return e instanceof cE?`email`:e instanceof yE?`sms`:e instanceof vE?`siwe`:e instanceof uE?`guest`:e instanceof oE?`custom_auth`:e instanceof hE?e.meta.provider:null}(e);n&&this.client&&this.client.createAnalyticsEvent({eventName:`sdk_authenticate`,payload:{method:n,isNewUser:t}}),n===`siwe`&&this.client&&this.client.createAnalyticsEvent({eventName:`sdk_authenticate_siwe`,payload:{connectorType:e.meta.connectorType,walletClientType:e.meta.walletClientType}})}async _link(e){try{let t=await e.link(),n=t.oauth_tokens,r=n?{provider:n.provider,accessToken:n.access_token,accessTokenExpiresInSeconds:n.access_token_expires_in_seconds,refreshToken:n.refresh_token,refreshTokenExpiresInSeconds:n.refresh_token_expires_in_seconds,scopes:n.scopes}:void 0;return{user:oe(t),oAuthTokens:r}}catch(e){throw console.warn(`Error linking account`),fe(e)}}async _refresh(){if(!this.api)throw new I(`Session has no API instance`);if(!this.client)throw new I(`Session has no PrivyClient instance`);await this.client.getAccessToken({disableAutoRefresh:!0});let e=this.token,t=this.refreshToken;if(this.client.useServerCookies&&!this.mightHaveServerCookies&&this.token&&window.location.origin===this.client.apiUrl)return this.destroyLocalState(),null;try{let n;if(!(e&&t||this.mightHaveServerCookies))return null;{let r={};e&&(r.authorization=`Bearer ${e}`),n=await this.api.post(Et,t?{refresh_token:t}:{},{headers:r})}return this.handleTokenResponse(n),oe(n.user)}catch(e){if(e instanceof me&&e.privyErrorCode===pe.MISSING_OR_INVALID_TOKEN)return console.warn(`Unable to refresh tokens - token is missing or no longer valid`),this.destroyLocalState(),null;throw fe(e)}}handleTokenResponse(e){e.session_update_action&&e.session_update_action!==`set`?e.session_update_action===`clear`?this.destroyLocalState():e.session_update_action===`ignore`&&(e.token&&(this.storeCustomerAccessToken(e.token),this.storePrivyAccessToken(e.privy_access_token)),e.identity_token&&this.storeIdentityToken(e.identity_token)):this._storeAllTokens(e)}_storeAllTokens(e){this.storeRefreshToken(e.refresh_token),this.storeCustomerAccessToken(e.token),this.storePrivyAccessToken(e.privy_access_token),e.identity_token&&this.storeIdentityToken(e.identity_token)}async _destroy(){try{await this.api?.post(en,{refresh_token:this.refreshToken})}catch{console.warn(`Error destroying session`)}this.destroyLocalState()}destroyLocalState(){this.storeRefreshToken(null),this.storeCustomerAccessToken(null),this.storePrivyAccessToken(null),this.clearIdentityToken()}storeCustomerAccessToken(e){if(typeof e==`string`){let t=F.get(O);F.put(O,e);let n=PT.parse(e)?.expiration;this.writeCookie(y,e,{expires:n?new Date(1e3*n):void 0}),t!==e&&this.client?.onStoreCustomerAccessToken?.(e)}else F.del(O),c.remove(y),this.client?.onDeleteCustomerAccessToken?.()}storeRefreshToken(e){typeof e==`string`?(F.put(h,e),this.writeCookie(w,`t`,{expires:30})):(F.del(h),c.remove(x),c.remove(w))}storePrivyAccessToken(e){typeof e==`string`?F.put(f,e):F.del(f)}storeIdentityToken(e){if(tE.setState({identityToken:e}),this.client?.useServerCookies)return;F.put(D,e);let t=PT.parse(e)?.expiration;this.writeCookie(m,e,{expires:t?new Date(1e3*t):void 0})}writeCookie(e,t,n){s({useServerCookies:this.client?.useServerCookies,cookieWriteBehavior:this.client?.cookieWriteBehavior})&&c.set(e,t,{sameSite:`Strict`,secure:!(bo.isSafari&&window.location.origin.startsWith(`http://localhost`)),...n})}clearIdentityToken(){F.del(D),tE.setState({identityToken:null}),c.remove(m)}constructor(){this.authenticateOnce=new gE((async e=>this._authenticate(e))),this.linkOnce=new gE((async e=>this._link(e))),this.refreshOnce=new gE(this._refresh.bind(this)),this.destroyOnce=new gE(this._destroy.bind(this))}},wE,TE,EE=0,DE=`__private_`+EE+++`__getOrGenerateClientAnalyticsId`,OE=class{getAppId(){return this.appId}initializeConnectorManager({walletConnectCloudProjectId:e,rpcConfig:t,chains:n,defaultChain:r,store:i,walletList:a,shouldEnforceDefaultChainOnConnect:o,externalWalletConfig:s,appName:c,walletChainType:l,setBaseAccountSdk:u,connectorsDebugLogs:d}){this.connectors||=new eE(this.appId,e,t,n,r,i,a,o,s,c,u,l,d)}generateApi(){let e=new rE({appId:this.appId,appClientId:this.appClientId,client:this,defaults:{baseURL:this.apiUrl,timeout:this.timeout}});return this.session.api=e,e}updateApiUrl(e){this.apiUrl=e||this.fallbackApiUrl,this.api=this.generateApi(),e&&(this.useServerCookies=!0)}authenticate(){if(!this.authFlow)throw new I(`No auth flow in progress.`);return this.session.authenticate(this.authFlow)}async link(){if(!this.authFlow)throw new I(`No auth flow in progress.`);let{oAuthTokens:e}=await this.session.link(this.authFlow);return{user:await this.getAuthenticatedUser(),oAuthTokens:e}}storeProviderAccessToken(e,t){this.session.storeProviderAccessToken(e,t)}getProviderAccessToken(e){return this.session.getProviderAccessToken(e)}async logout(){await this.session.destroy(),this.authFlow=void 0}clearProviderAcccessTokens(e){e.linkedAccounts.filter((e=>e.type===`cross_app`)).forEach((e=>{this.storeProviderAccessToken(e.providerApp.id,null)}))}startAuthFlow(e){return e.api=this.api,this.authFlow=e,this.authFlow}async initMfaSmsVerification(){try{await this.api.post(Jt,{action:`verify`})}catch(e){throw de(e)}}async initMfaPasskeyVerification(){try{return iE((await this.api.post(tn,{})).options)}catch(e){throw de(e)}}async getCrossAppProviderDetails(e){try{return this._cachedProviderAppDetails[e]||(this._cachedProviderAppDetails[e]=await this.api.get(`/api/v1/apps/${e}/cross-app/details`)),this._cachedProviderAppDetails[e]}catch(e){console.error(`Error fetching cross app provider details`,e)}}async acceptTerms(){try{let e=await this.api.post(Dt,{});return oe(e)}catch(e){throw fe(e)}}async unlinkEmail(e){try{let t=await this.api.post(Bt,{address:e});return await this.getAuthenticatedUser()??oe(t)}catch(e){throw fe(e)}}async unlinkPhone(e){try{let t=await this.api.post(Xt,{phoneNumber:e});return await this.getAuthenticatedUser()??oe(t)}catch(e){throw fe(e)}}async unlinkEthereumWallet(e){try{let t=await this.api.post(on,{address:e});return await this.getAuthenticatedUser()??oe(t)}catch(e){throw fe(e)}}async unlinkSolanaWallet(e){try{let t=await this.api.post(bt,{address:e});return await this.getAuthenticatedUser()??oe(t)}catch(e){throw fe(e)}}async unlinkOAuth(e,t){try{let n=await this.api.post(Wt,{provider:e,subject:t});return await this.getAuthenticatedUser()??oe(n)}catch(e){throw fe(e)}}async unlinkFarcaster(e){try{let t=await this.api.post(Tt,{fid:e});return await this.getAuthenticatedUser()??oe(t)}catch(e){throw fe(e)}}async unlinkTelegram(e){try{let t=await this.api.post(Yt,{telegram_user_id:e});return await this.getAuthenticatedUser()??oe(t)}catch(e){throw fe(e)}}async revokeDelegatedWallet(){try{await this.api.post(fn,{})}catch(e){throw fe(e)}}async createAnalyticsEvent({eventName:e,payload:t,timestamp:n,options:r}){if(typeof window<`u`)try{if(!this.clientAnalyticsId)return void console.warn(`No client analytics id set, refusing to send analytics event`);await this.api.post(cn,{event_name:e,client_id:this.clientAnalyticsId,payload:{...t||{},clientTimestamp:n?n.toISOString():new Date().toISOString()}},{retry:-1,keepalive:r?.keepAlive??!1})}catch{}}async signMoonpayOnRampUrl(e){try{return this.api.post(Ot,e)}catch(e){throw fe(e)}}async initCoinbaseOnRamp(e){try{return this.api.post(Ct,e)}catch(e){throw fe(e)}}async getCoinbaseOnRampStatus({partnerUserId:e}){try{return this.api.get(`${Zt}?partnerUserId=${e}`)}catch(e){throw fe(e)}}async getAuthenticatedUser(){return this.session.hasRefreshCredentials()?this.session.refresh():null}async getAccessToken(e){return await this.getPrivyAccessToken(e)||await this.getCustomerAccessToken(e)}async getCustomerAccessToken(e){return await this._getToken(SE.CUSTOMER,e)}async getPrivyAccessToken(e){return await this._getToken(SE.PRIVY,e)}async _getToken(e,t){if(this.session.getToken(e)){if(this.session.hasActiveAccessToken(e))return this.session.hasRefreshCredentials(e)?FT.parse(this.session.getToken(e))?.appId===this.appId?this.session.getToken(e):(await this.logout(),null):(this.session.destroyLocalState(),null);{if(t?.disableAutoRefresh||!this.session.hasRefreshCredentials(e))return null;let n=hn(aE);if(n){let t=async()=>(await this.session.refresh(),this.session.getToken(e));return await n.withRefreshLock({onLeader:t,onFollowerReleased:async()=>this.session.hasActiveAccessToken(e)?this.session.getToken(e):t()})}return await this.session.refresh(),this.session.getToken(e)}}return!t?.disableAutoRefresh&&this.useServerCookies&&this.session.mightHaveServerCookies?(await this.session.refresh(),this.session.getToken(e)):null}async getUsdTokenPrice(e){try{return(await this.api.get(`/api/v1/token_price?chainId=${e.id}&tokenSymbol=${e.nativeCurrency.symbol}`)).usd}catch{console.error(`Unable to fetch token price for chain with id ${e.id}`);return}}async getUsdPriceForSol(){try{return(await this.api.get(`/api/v1/token_price?chainId=0&tokenSymbol=SOL`)).usd}catch{console.error(`Unable to fetch token price for SOL`);return}}async getSplTokenMetadata({mintAddress:e,cluster:t}){try{return await this.api.get(`/api/v1/spl_token_info?mint_address=${e}&cluster=${t}`)}catch{console.error(`Unable to fetch token metadata for ${t}:${e}`);return}}async requestFarcasterSignerStatus(e){try{return await this.api.post(`/api/v1/farcaster/signer/status`,{ed25519_public_key:e})}catch(e){throw console.error(`Unable to fetch Farcaster signer status`),e}}async generateSiweNonce({address:e,captchaToken:t}){try{return(await this.api.post(jt,{address:e,token:t})).nonce}catch(e){throw fe(e)}}async authenticateWithSiweInternal({message:e,signature:t,chainId:n,walletClientType:r,connectorType:i,mode:a}){return await this.api.post(qt,{message:e,signature:t,chainId:n,walletClientType:r,connectorType:i,mode:a})}async linkWithSiweInternal({message:e,signature:t,chainId:n,walletClientType:r,connectorType:i}){return await this.api.post(wt,{message:e,signature:t,chainId:n,walletClientType:r,connectorType:i})}async linkSmartWallet({message:e,signature:t,smartWalletType:n,smartWalletVersion:r}){try{let i=await this.api.post(Pt,{message:e,signature:t,smart_wallet_type:n,smart_wallet_version:r});return oe(i)}catch(e){throw fe(e)}}async linkWithSiwe({message:e,signature:t,chainId:n,walletClientType:r,connectorType:i}){try{let a=await this.linkWithSiweInternal({message:e,signature:t,chainId:n,walletClientType:r,connectorType:i});return oe(a)}catch(e){throw fe(e)}}async generateSiwsNonce({address:e,captchaToken:t}){try{return(await this.api.post(Vt,{address:e,token:t})).nonce}catch(e){throw fe(e)}}async authenticateWithSiwsInternal({message:e,signature:t,walletClientType:n,connectorType:r,mode:i,messageType:a=`plain`}){return await this.api.post(Nt,{message:e,signature:t,walletClientType:n,connectorType:r,mode:i,message_type:a})}async authenticateWithSiws({message:e,signature:t,walletClientType:n,connectorType:r,mode:i,messageType:a=`plain`}){let o=await this.authenticateWithSiwsInternal({message:e,signature:t,walletClientType:n,connectorType:r,mode:i,messageType:a});this.session.handleTokenResponse(o);let s=oe(o.user);if(!s)throw Error(`Authentication failed - no user returned`);return{user:s,isNewUser:o.is_new_user||!1}}async sendAccountTransferRequest({nonce:e,account:t,accountType:n,externalWalletMetadata:r,telegramAuthResult:i,telegramWebAppData:a,farcasterEmbeddedAddress:o,oAuthUserInfo:s}){try{let c,l;switch(n){case`email`:c=an,l={nonce:e,email:t};break;case`sms`:c=Ht,l={nonce:e,phoneNumber:t};break;case`siwe`:if(c=`/api/v1/siwe/transfer`,!r)throw Error(`Wallet parameters must be defined`);l={nonce:e,address:t,...r};break;case`farcaster`:c=mn,l={nonce:e,farcaster_id:t,farcaster_embedded_address:o};break;case`telegram`:c=vt,l={nonce:e,telegram_auth_result:i,telegram_web_app_data:a};break;case`siws`:c=St,l={nonce:e,address:t,...r};break;case`custom`:case`guest`:case`passkey`:throw Error(`Invalid transfer account type`);default:c=Ft,l={nonce:e,userInfo:s}}let u=await this.api.post(c,l);return await this.getAuthenticatedUser()??oe(u)}catch(e){throw fe(e)}}async linkWithSiwsInternal({message:e,signature:t,walletClientType:n,connectorType:r,messageType:i=`plain`}){return await this.api.post(nn,{message:e,signature:t,walletClientType:n,connectorType:r,message_type:i})}async linkWithSiws({message:e,signature:t,walletClientType:n,connectorType:r,messageType:i=`plain`}){try{let a=await this.linkWithSiwsInternal({message:e,signature:t,walletClientType:n,connectorType:r,messageType:i});return oe(a)}catch(e){throw fe(e)}}async updateUserAndIdToken(){try{let e=await this.api.get(Mt);return this.session.updateIdentityToken(e.identity_token),oe(e.user)}catch(e){throw fe(e)}}async scanTransaction(e){try{return await this.api.post(un,e)}catch(e){throw fe(e)}}constructor({apiUrl:e=g,appId:t,appClientId:n,timeout:r=u,cookieWriteBehavior:i}){Object.defineProperty(this,DE,{value:kE}),this._cachedProviderAppDetails={},this.apiUrl=e,this.fallbackApiUrl=this.apiUrl,this.useServerCookies=e!==`https://auth.privy.io`&&e.startsWith(`https://privy.`),this.cookieWriteBehavior=i,this.timeout=r,this.appId=t,this.appClientId=n,this.clientAnalyticsId=function(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError(`attempted to use private field on non-instance`);return e}(this,DE)[DE](),wE||=new CE,this.session=wE,this.api=this.generateApi(),this.session.client=this}};function kE(){if(typeof window>`u`)return null;try{let e=F.get(T);if(typeof e==`string`&&e.length>0)return e}catch{}let e=crypto.randomUUID();try{return F.put(T,e),e}catch{return e}}function AE(){if(!TE)throw new I(`No global PrivyClient instance found. Please ensure you have initialized the PrivyProvider.`);return TE}function jE(e){TE||=new OE({appId:e.appId,appClientId:e.clientId,apiUrl:e.apiUrl,cookieWriteBehavior:e.config?.sessions?.cookieWriteBehavior})}async function ME(){let e=AE();return e?e.getAccessToken():Promise.resolve(F.get(`privy:pat`)||F.get(`privy:token`)||null)}async function NE(e,t,n,r){let o=a(e),{chain:s,authorizationList:c,...l}=await(async()=>r?await r():await t.prepareTransactionRequest({...o,account:{address:n,type:`json-rpc`}}))();return{...l,type:i[l.type],authorizationList:e.authorizationList}}var PE=[`calls`,`feePayer`,`feePayerSignature`,`feeToken`,`keyAuthorization`,`nonceKey`,`signature`,`validBefore`,`validAfter`],FE=e=>{if(!e||typeof e!=`object`)return!1;if(e.type===118||typeof e.type==`string`&&e.type.toLowerCase()===r)return!0;let t=e.account;return!!t?.keyType&&t.keyType!==`secp256k1`||t?.source===`accessKey`||PE.some((t=>e[t]!==void 0))},IE=e=>({type:118,from:e.from,chainId:e.chainId,nonce:e.nonce,gasLimit:e.gasLimit??e.gas,maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas,calls:LE(e),feeToken:RE(e.feeToken),nonceKey:zE(e.nonceKey),validBefore:e.validBefore,validAfter:e.validAfter,feePayerSignature:e.feePayerSignature??void 0,accessList:e.accessList}),LE=e=>{let t=e.calls&&e.calls.length>0?e.calls:e.to?[{to:e.to,data:e.data,value:e.value}]:[];if(t.length===0)throw Error(`Tempo transactions require at least one call`);return t.map((e=>{if(!e.to)throw Error("Tempo transaction calls require a `to` address");return{to:e.to,data:e.data,value:e.value}}))},RE=e=>{if(e!==void 0)return typeof e==`string`?e:`0x20c0${e.toString(16).padStart(36,`0`)}`},zE=e=>{if(e!==`expiring`&&e!==`random`)return e};export{FE as C,lE as S,vE as _,oE as a,bE as b,LT as c,jE as d,pE as f,cE as g,yE as h,IT as i,RT as l,_E as m,AE as n,WT as o,ME as p,IE as r,NE as s,$T as t,sE as u,gE as v,NT as w,mE as x,hE as y};
|