@aptos-labs/wallet-adapter-core 7.9.2 → 7.10.1

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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/aptos-wallet-adapter/aptos-wallet-adapter/packages/wallet-adapter-core/dist/index.js","../src/index.ts","../src/version.ts","../src/WalletCore.ts","../src/ga/index.ts","../src/error/index.ts","../src/constants.ts","../src/utils/helpers.ts","../src/utils/localStorage.ts","../src/utils/walletSelector.ts","../src/registry.ts","../src/sdkWallets.ts"],"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","index_exports","APTOS_CONNECT_ACCOUNT_URL","APTOS_CONNECT_BASE_URL","ChainIdToAnsSupportedNetworkMap","NetworkName","PETRA_WEB_ACCOUNT_URL","PETRA_WEB_BASE_URL","WalletCore","WalletReadyState","aptosStandardSupportedWalletList","convertNetwork","crossChainStandardSupportedWalletList","fetchDevnetChainId","generalizedErrorMessage","getAptosConfig","getAptosConnectWallets","getLocalStorage","getPetraWebWallets","getSDKWallets","groupAndSortWallets","handlePublishPackageTransaction","isAptosConnectWallet","isAptosLiveNetwork","isAptosNetwork","isInAppBrowser","isInstallRequired","isInstalledOrLoadable","isMobile","isPetraWebWallet","isRedirectable","partitionWallets","removeLocalStorage","setLocalStorage","truncateAddress","module","exports","WALLET_ADAPTER_CORE_VERSION","import_eventemitter3","require","import_ts_sdk","import_wallet_standard","GA4","aptosGAID","injectGA","gtag","a","b","c","dataLayer","window","push","arguments","gaID","head","document","getElementsByTagName","myScript","createElement","setAttribute","that","onload","Date","send_page_view","insertBefore","children","WalletError","message","error","Error","WalletNotSelectedError","WalletNotReadyError","WalletConnectionError","WalletDisconnectionError","WalletAccountError","WalletGetNetworkError","WalletAccountChangeError","WalletNetworkChangeError","WalletNotConnectedError","WalletSignMessageError","WalletSignMessageAndVerifyError","WalletSignAndSubmitMessageError","WalletSignTransactionError","WalletNotSupportedMethod","WalletChangeNetworkError","WalletSubmitTransactionError","WalletNotFoundError","test","navigator","userAgent","isIphone","isAndroid","networkInfo","dappConfig","pluginSettings","TRANSACTION_SUBMITTER","transactionSubmitter","currentNetwork","apiKey","aptosApiKeys","AptosConfig","network","clientConfig","API_KEY","knownNetworks","okx","url","isKnownNetwork","values","includes","Network","CUSTOM","fullnode","NetworkToNodeAPI","aptos","Aptos","getChainId","transactionInput","metadataBytes","data","functionArguments","Hex","fromHexInput","toUint8Array","byteCode","Array","isArray","map","byte","MAINNET","TESTNET","DEVNET","LOCAL","LOCAL_STORAGE_ITEM_KEY","walletName","localStorage","setItem","removeItem","getItem","wallets","partitionFunction","defaultWallets","moreWallets","wallet","readyState","isWalletReady","address","slice","startsWith","aptosConnectWallets","otherWallets","petraWebWallets","options","sortAptosConnectWallets","sort","sortPetraWebWallets","sortAvailableWallets","sortInstallableWallets","availableWallets","installableWallets","icon","isAIP62Standard","deeplinkProvider","import_wallet_adapter_plugin","sdkWallets","AptosConnectGoogleWallet","dappId","aptosConnectDappId","aptosConnect","AptosConnectAppleWallet","optInWallets","disableTelemetry","_wallet","_sdkWallets","_standard_wallets","_standard_not_detected_wallets","_network","_connected","_connecting","_account","_optInWallets","_disableTelemetry","ga4","_dappConfig","fetchExtensionAIP62AptosWallets","fetchSDKAIP62AptosWallets","appendNotDetectedStandardSupportedWallets","getAptosWallets","aptosWallets","on","setExtensionAIP62Wallets","removeRegisterListener","removeUnregisterListener","extensionwWallets","excludeWallet","isValid","isWalletWithRequiredFeatureSet","index","findIndex","notDetctedWallet","splice","alreadyExists","some","w","isAptosNativeWallet","emit","walletRegistry","crossChainWallets","supportedWallet","existingStandardWallet","find","length","recordEvent","eventName","additionalInfo","network_url","adapter_core_version","send_to","ensureWalletExists","ensureAccountExists","account","setAnsName","aptosConfig","chainId","ansName","import_ts_sdk2","ans","getPrimaryName","toString","console","log","clearData","setWallet","setAccount","setNetwork","isConnected","notDetectedWallets","connect","selectedWallet","uninstalledWallet","parameter","ref","location","allDetectedWallets","encodeURIComponent","href","origin","concat","connectWallet","response","features","status","UserResponseStatus","REJECTED","args","output","signIn","input","onConnect","errMsg","disconnect","signAndSubmitTransaction","shouldUseTxnSubmitter","transaction","signAndSubmitTransactionMethod","signTransactionResponse","function","version","build","simple","sender","payload","gasUnitPrice","maxGasAmount","withFeePayer","signTransaction","transactionOrPayload","submitTransaction","senderAuthenticator","authenticator","pluginParams","hash","asFeePayer","signTransactionV1_1StandardInput","walletSignTransactionMethod","rawTransaction","bcsToBytes","expirationTimestamp","expirationSecondsFromNow","sequenceNumber","accountSequenceNumber","AccountAddress","signMessage","additionalSignersAuthenticators","transactionType","multiAgentTxn","transaction_type","submit","multiAgent","onAccountChange","onNetworkChange","changeNetwork","NetworkToChainId","signMessageAndVerify","signingMessage","TextEncoder","encode","fullMessage","publicKey","verifySignatureAsync","signature","throwErrorWithReason","verifySignature","EventEmitter"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n APTOS_CONNECT_ACCOUNT_URL: () => APTOS_CONNECT_ACCOUNT_URL,\n APTOS_CONNECT_BASE_URL: () => APTOS_CONNECT_BASE_URL,\n ChainIdToAnsSupportedNetworkMap: () => ChainIdToAnsSupportedNetworkMap,\n NetworkName: () => NetworkName,\n PETRA_WEB_ACCOUNT_URL: () => PETRA_WEB_ACCOUNT_URL,\n PETRA_WEB_BASE_URL: () => PETRA_WEB_BASE_URL,\n WalletCore: () => WalletCore,\n WalletReadyState: () => WalletReadyState,\n aptosStandardSupportedWalletList: () => aptosStandardSupportedWalletList,\n convertNetwork: () => convertNetwork,\n crossChainStandardSupportedWalletList: () => crossChainStandardSupportedWalletList,\n fetchDevnetChainId: () => fetchDevnetChainId,\n generalizedErrorMessage: () => generalizedErrorMessage,\n getAptosConfig: () => getAptosConfig,\n getAptosConnectWallets: () => getAptosConnectWallets,\n getLocalStorage: () => getLocalStorage,\n getPetraWebWallets: () => getPetraWebWallets,\n getSDKWallets: () => getSDKWallets,\n groupAndSortWallets: () => groupAndSortWallets,\n handlePublishPackageTransaction: () => handlePublishPackageTransaction,\n isAptosConnectWallet: () => isAptosConnectWallet,\n isAptosLiveNetwork: () => isAptosLiveNetwork,\n isAptosNetwork: () => isAptosNetwork,\n isInAppBrowser: () => isInAppBrowser,\n isInstallRequired: () => isInstallRequired,\n isInstalledOrLoadable: () => isInstalledOrLoadable,\n isMobile: () => isMobile,\n isPetraWebWallet: () => isPetraWebWallet,\n isRedirectable: () => isRedirectable,\n partitionWallets: () => partitionWallets,\n removeLocalStorage: () => removeLocalStorage,\n setLocalStorage: () => setLocalStorage,\n truncateAddress: () => truncateAddress\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/version.ts\nvar WALLET_ADAPTER_CORE_VERSION = \"7.9.2\";\n\n// src/WalletCore.ts\nvar import_eventemitter3 = __toESM(require(\"eventemitter3\"));\nvar import_ts_sdk2 = require(\"@aptos-labs/ts-sdk\");\nvar import_wallet_standard = require(\"@aptos-labs/wallet-standard\");\n\n// src/ga/index.ts\nvar GA4 = class {\n constructor() {\n this.aptosGAID = \"G-GNVVWBL3J9\";\n this.injectGA(this.aptosGAID);\n }\n gtag(a, b, c) {\n let dataLayer = window.dataLayer || [];\n dataLayer.push(arguments);\n }\n injectGA(gaID) {\n if (typeof window === \"undefined\") return;\n if (!gaID) return;\n const head = document.getElementsByTagName(\"head\")[0];\n var myScript = document.createElement(\"script\");\n myScript.setAttribute(\n \"src\",\n `https://www.googletagmanager.com/gtag/js?id=${gaID}`\n );\n const that = this;\n myScript.onload = function() {\n that.gtag(\"js\", /* @__PURE__ */ new Date());\n that.gtag(\"config\", `${gaID}`, {\n send_page_view: false\n });\n };\n head.insertBefore(myScript, head.children[1]);\n }\n};\n\n// src/error/index.ts\nvar WalletError = class extends Error {\n constructor(message, error) {\n super(message);\n this.error = error;\n }\n};\nvar WalletNotSelectedError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletNotSelectedError\";\n }\n};\nvar WalletNotReadyError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletNotReadyError\";\n }\n};\nvar WalletConnectionError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletConnectionError\";\n }\n};\nvar WalletDisconnectionError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletDisconnectionError\";\n }\n};\nvar WalletAccountError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletAccountError\";\n }\n};\nvar WalletGetNetworkError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletGetNetworkError\";\n }\n};\nvar WalletAccountChangeError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletAccountChangeError\";\n }\n};\nvar WalletNetworkChangeError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletNetworkChangeError\";\n }\n};\nvar WalletNotConnectedError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletNotConnectedError\";\n }\n};\nvar WalletSignMessageError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletSignMessageError\";\n }\n};\nvar WalletSignMessageAndVerifyError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletSignMessageAndVerifyError\";\n }\n};\nvar WalletSignAndSubmitMessageError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletSignAndSubmitMessageError\";\n }\n};\nvar WalletSignTransactionError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletSignTransactionError\";\n }\n};\nvar WalletNotSupportedMethod = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletNotSupportedMethod\";\n }\n};\nvar WalletChangeNetworkError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletChangeNetworkError\";\n }\n};\nvar WalletSubmitTransactionError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletSubmitTransactionError\";\n }\n};\nvar WalletNotFoundError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletNotFoundError\";\n }\n};\n\n// src/constants.ts\nvar WalletReadyState = /* @__PURE__ */ ((WalletReadyState2) => {\n WalletReadyState2[\"Installed\"] = \"Installed\";\n WalletReadyState2[\"NotDetected\"] = \"NotDetected\";\n return WalletReadyState2;\n})(WalletReadyState || {});\nvar NetworkName = /* @__PURE__ */ ((NetworkName2) => {\n NetworkName2[\"Mainnet\"] = \"mainnet\";\n NetworkName2[\"Testnet\"] = \"testnet\";\n NetworkName2[\"Devnet\"] = \"devnet\";\n return NetworkName2;\n})(NetworkName || {});\nvar ChainIdToAnsSupportedNetworkMap = {\n \"1\": \"mainnet\",\n // mainnet\n \"2\": \"testnet\"\n // testnet\n};\nvar APTOS_CONNECT_BASE_URL = \"https://aptosconnect.app\";\nvar PETRA_WEB_BASE_URL = \"https://web.petra.app\";\nvar APTOS_CONNECT_ACCOUNT_URL = \"https://aptosconnect.app/dashboard/main-account\";\nvar PETRA_WEB_ACCOUNT_URL = \"https://web.petra.app/dashboard/main-account\";\n\n// src/utils/helpers.ts\nvar import_ts_sdk = require(\"@aptos-labs/ts-sdk\");\nfunction isMobile() {\n return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(\n navigator.userAgent\n );\n}\nfunction isInAppBrowser() {\n const isIphone = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(\n navigator.userAgent\n );\n const isAndroid = /(Android).*Version\\/[\\d.]+.*Chrome\\/[^\\s]+ Mobile/i.test(\n navigator.userAgent\n );\n return isIphone || isAndroid;\n}\nfunction isRedirectable() {\n if (typeof navigator === \"undefined\" || !navigator) return false;\n return isMobile() && !isInAppBrowser();\n}\nfunction generalizedErrorMessage(error) {\n return typeof error === \"object\" && \"message\" in error ? error.message : error;\n}\nvar getAptosConfig = (networkInfo, dappConfig) => {\n if (!networkInfo) {\n throw new Error(\"Undefined network\");\n }\n const pluginSettings = {\n TRANSACTION_SUBMITTER: dappConfig?.transactionSubmitter\n };\n if (isAptosNetwork(networkInfo)) {\n const currentNetwork = convertNetwork(networkInfo);\n if (isAptosLiveNetwork(currentNetwork)) {\n const apiKey = dappConfig?.aptosApiKeys;\n return new import_ts_sdk.AptosConfig({\n network: currentNetwork,\n clientConfig: { API_KEY: apiKey ? apiKey[currentNetwork] : void 0 },\n pluginSettings\n });\n }\n return new import_ts_sdk.AptosConfig({\n network: currentNetwork,\n pluginSettings\n });\n }\n const knownNetworks = {\n okx: \"https://wallet.okx.com/fullnode/aptos/discover/rpc\"\n };\n if (networkInfo.url) {\n const isKnownNetwork = Object.values(knownNetworks).includes(\n networkInfo.url\n );\n if (isKnownNetwork) {\n return new import_ts_sdk.AptosConfig({\n network: import_ts_sdk.Network.CUSTOM,\n fullnode: networkInfo.url,\n pluginSettings\n });\n }\n }\n throw new Error(\n `Invalid network, network ${networkInfo.name} not supported with Aptos wallet adapter to prevent user from using an unexpected network.`\n );\n};\nvar isAptosNetwork = (networkInfo) => {\n if (!networkInfo) {\n throw new Error(\"Undefined network\");\n }\n return import_ts_sdk.NetworkToNodeAPI[networkInfo.name] !== void 0;\n};\nvar isAptosLiveNetwork = (networkInfo) => {\n return networkInfo === \"devnet\" || networkInfo === \"testnet\" || networkInfo === \"mainnet\";\n};\nvar fetchDevnetChainId = async () => {\n const aptos = new import_ts_sdk.Aptos();\n return await aptos.getChainId();\n};\nvar handlePublishPackageTransaction = (transactionInput) => {\n let metadataBytes = transactionInput.data.functionArguments[0];\n if (typeof metadataBytes === \"string\") {\n metadataBytes = import_ts_sdk.Hex.fromHexInput(metadataBytes).toUint8Array();\n }\n let byteCode = transactionInput.data.functionArguments[1];\n if (Array.isArray(byteCode)) {\n byteCode = byteCode.map((byte) => {\n if (typeof byte === \"string\") {\n return import_ts_sdk.Hex.fromHexInput(byte).toUint8Array();\n }\n return byte;\n });\n } else {\n throw new WalletSignAndSubmitMessageError(\n \"The bytecode argument must be an array.\"\n ).message;\n }\n return { metadataBytes, byteCode };\n};\nfunction convertNetwork(networkInfo) {\n switch (networkInfo?.name) {\n case \"mainnet\":\n return import_ts_sdk.Network.MAINNET;\n case \"testnet\":\n return import_ts_sdk.Network.TESTNET;\n case \"devnet\":\n return import_ts_sdk.Network.DEVNET;\n case \"local\":\n return import_ts_sdk.Network.LOCAL;\n default:\n throw new Error(\"Invalid Aptos network name\");\n }\n}\n\n// src/utils/localStorage.ts\nvar LOCAL_STORAGE_ITEM_KEY = \"AptosWalletName\";\nfunction setLocalStorage(walletName) {\n localStorage.setItem(LOCAL_STORAGE_ITEM_KEY, walletName);\n}\nfunction removeLocalStorage() {\n localStorage.removeItem(LOCAL_STORAGE_ITEM_KEY);\n}\nfunction getLocalStorage() {\n localStorage.getItem(LOCAL_STORAGE_ITEM_KEY);\n}\n\n// src/utils/walletSelector.ts\nfunction partitionWallets(wallets, partitionFunction = isInstalledOrLoadable) {\n const defaultWallets = [];\n const moreWallets = [];\n for (const wallet of wallets) {\n if (partitionFunction(wallet)) defaultWallets.push(wallet);\n else moreWallets.push(wallet);\n }\n return { defaultWallets, moreWallets };\n}\nfunction isInstalledOrLoadable(wallet) {\n return wallet.readyState === \"Installed\" /* Installed */;\n}\nfunction isInstallRequired(wallet) {\n const isWalletReady = isInstalledOrLoadable(wallet);\n const isMobile2 = !isWalletReady && isRedirectable();\n return !isMobile2 && !isWalletReady;\n}\nfunction truncateAddress(address) {\n if (!address) return;\n return `${address.slice(0, 6)}...${address.slice(-5)}`;\n}\nfunction isAptosConnectWallet(wallet) {\n return isPetraWebWallet(wallet);\n}\nfunction isPetraWebWallet(wallet) {\n if (!wallet.url) return false;\n return wallet.url.startsWith(APTOS_CONNECT_BASE_URL) || wallet.url.startsWith(PETRA_WEB_BASE_URL);\n}\nfunction getAptosConnectWallets(wallets) {\n const { defaultWallets, moreWallets } = partitionWallets(\n wallets,\n isAptosConnectWallet\n );\n return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets };\n}\nfunction getPetraWebWallets(wallets) {\n const { defaultWallets, moreWallets } = partitionWallets(\n wallets,\n isPetraWebWallet\n );\n return { petraWebWallets: defaultWallets, otherWallets: moreWallets };\n}\nfunction groupAndSortWallets(wallets, options) {\n const { aptosConnectWallets } = getAptosConnectWallets(wallets);\n const { otherWallets, petraWebWallets } = getPetraWebWallets(wallets);\n const { defaultWallets, moreWallets } = partitionWallets(otherWallets);\n if (options?.sortAptosConnectWallets) {\n aptosConnectWallets.sort(options.sortAptosConnectWallets);\n }\n if (options?.sortPetraWebWallets) {\n petraWebWallets.sort(options.sortPetraWebWallets);\n }\n if (options?.sortAvailableWallets) {\n defaultWallets.sort(options.sortAvailableWallets);\n }\n if (options?.sortInstallableWallets) {\n moreWallets.sort(options.sortInstallableWallets);\n }\n return {\n /** @deprecated Use {@link petraWebWallets} instead. */\n aptosConnectWallets,\n /** Wallets that use social login to create an account on the blockchain */\n petraWebWallets,\n /** Wallets that are currently installed or loadable. */\n availableWallets: defaultWallets,\n /** Wallets that are NOT currently installed or loadable. */\n installableWallets: moreWallets\n };\n}\n\n// src/registry.ts\nvar aptosStandardSupportedWalletList = [\n {\n name: \"OKX Wallet\",\n url: \"https://chromewebstore.google.com/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge\",\n icon: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJDSURBVHgB7Zq9jtpAEMfHlhEgQLiioXEkoAGECwoKxMcTRHmC5E3IoyRPkPAEkI7unJYmTgEFTYwA8a3NTKScLnCHN6c9r1e3P2llWQy7M/s1Gv1twCP0ej37dDq9x+Zut1t3t9vZjDEHIiSRSPg4ZpDL5fxkMvn1cDh8m0wmfugfO53OoFQq/crn8wxfY9EymQyrVCqMfHvScZx1p9ls3pFxXBy/bKlUipGPrVbLuQqAfsCliq3zl0H84zwtjQrOw4Mt1W63P5LvBm2d+Xz+YzqdgkqUy+WgWCy+Mc/nc282m4FqLBYL+3g8fjDxenq72WxANZbLJeA13zDX67UDioL5ybXwafMYu64Ltn3bdDweQ5R97fd7GyhBQMipx4POeEDHIu2LfDdBIGGz+hJ9CQ1ABjoA2egAZPM6AgiCAEQhsi/C4jHyPA/6/f5NG3Ks2+3CYDC4aTccDrn6ojG54MnEvG00GoVmWLIRNZ7wTCwDHYBsdACy0QHIhiuRETxlICWpMMhGZHmqS8qH6JLyGegAZKMDkI0uKf8X4SWlaZo+Pp1bRrwlJU8ZKLIvUjKh0WiQ3sRUbNVq9c5Ebew7KEo2m/1p4jJ4qAmDaqDQBzj5XyiAT4VCQezJigAU+IDU+z8vJFnGWeC+bKQV/5VZ71FV6L7PA3gg3tXrdQ+DgLhC+75Wq3no69P3MC0NFQpx2lL04Ql9gHK1bRDjsSBIvScBnDTk1WrlGIZBorIDEYJj+rhdgnQ67VmWRe0zlplXl81vcyEt0rSoYDUAAAAASUVORK5CYII=\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true\n },\n {\n name: \"Petra\",\n url: \"https://chromewebstore.google.com/detail/petra-aptos-wallet/ejjladinnckdgjemekebdpeokbikhfci?hl=en\",\n icon: \"data:image/png;base64,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\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: \"https://petra.app/explore?link=\"\n },\n {\n name: \"Nightly\",\n url: \"https://nightly.app/\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: \"nightly://v1?network=aptos&url=\"\n },\n {\n name: \"Pontem Wallet\",\n url: \"https://pontem.network/pontem-wallet\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDBDOC4wNzMwNCAwIDAgOC4wNzEzOSAwIDE3Ljk5NjNDMCAyNS4xMjk4IDQuMTczMTYgMzEuMzEwOCAxMC4yMDc2IDM0LjIyMDNWMzQuMjM1MUgxMC4yMzcyQzEyLjU4NiAzNS4zNjQ5IDE1LjIyMjggMzYgMTggMzZDMjcuOTI3IDM2IDM2IDI3LjkyODYgMzYgMTguMDAzN0MzNiA4LjA3MTM4IDI3LjkyNyAwIDE4IDBaTTE4IDEuNDc2OTJDMjcuMTA3MSAxLjQ3NjkyIDM0LjUyMjggOC44OTEwOCAzNC41MjI4IDE3Ljk5NjNDMzQuNTIyOCAyMC42MTA1IDMzLjkwOTcgMjMuMDkxNyAzMi44MjQgMjUuMjkyM0MzMC40NDU2IDI0LjE0MDMgMjguMDMwNCAyMy4yODM3IDI1LjU5MjkgMjIuNzAwM1Y4LjkyMDYyQzI1LjU5MjkgOC40NDA2MiAyNS4yMTYyIDguMDU2NjIgMjQuNzQzNSA4LjA1NjYySDIxLjcxNTJIMTQuMDg1NEgxMS4wNTdDMTAuNTkxNyA4LjA1NjYyIDEwLjIwNzYgOC40NDA2MiAxMC4yMDc2IDguOTIwNjJWMjIuNzY2OEM3Ljg0NDA3IDIzLjM1MDIgNS40OTUyOCAyNC4xOTIgMy4xODM0MiAyNS4yOTk3QzIuMDkwMjcgMjMuMDkxNyAxLjQ3NzIzIDIwLjYxNzggMS40NzcyMyAxNy45OTYzQzEuNDc3MjMgOC44OTEwOCA4Ljg5MjkgMS40NzY5MiAxOCAxLjQ3NjkyWk00LjEzNjIzIDI2Ljk2MTJDNi4wOTM1NiAyNS45OTM4IDguMTI0NzQgMjUuMjQ4IDEwLjIxNSAyNC43MzExVjMyLjU1ODhDNy43NDA2NiAzMS4yMzY5IDUuNjUwMzkgMjkuMzAyMiA0LjEzNjIzIDI2Ljk2MTJaTTE0LjA4NTQgMzQuMDQzMVYxNS42MDM3QzE0LjA4NTQgMTMuNDY5NSAxNS44MzU5IDExLjcwNDYgMTcuOTI2MSAxMS43MDQ2QzIwLjAxNjQgMTEuNzA0NiAyMS43MTUyIDEzLjQzMjYgMjEuNzE1MiAxNS41NTk0QzIxLjcxNTIgMTUuNTc0MiAyMS43MDc4IDE1LjU4ODkgMjEuNzA3OCAxNS42MDM3SDIxLjcxNTJWMjIuMDIwOUMxOS45MzUyIDIxLjgxNDIgMTguMTQ3NyAyMS43NDc3IDE2LjM2MDMgMjEuODQzN0wxNC44OTA0IDIzLjk3NzhDMTcuMTgwMSAyMy43ODU4IDE5LjQxMDcgMjMuODAwNiAyMS42MTE4IDI0LjA1MTdDMjEuNjM0IDI0LjA1MTcgMjEuNjQ4NyAyNC4wNTE3IDIxLjY3MDkgMjQuMDU5MUMyMS42ODU3IDI0LjA1OTEgMjEuNzAwNSAyNC4wNTkxIDIxLjcyMjYgMjQuMDY2NUMyMi4xMDY3IDI0LjExMDggMjMuNTAyNyAyNC4yODggMjQuNzgwNSAyNC42MDU1TDIxLjcyMjYgMjUuNjQ2OFYzNC4xMDIyQzIwLjUyNjEgMzQuMzc1NCAxOS4yODUyIDM0LjUzMDUgMTguMDE0OCAzNC41MzA1QzE2LjY0ODMgMzQuNTE1NyAxNS4zNDEgMzQuMzQ1OCAxNC4wODU0IDM0LjA0MzFaTTI1LjU4NTYgMzIuNjYyMlYyNC43NjhDMjcuNjY4NCAyNS4yOTIzIDI5LjcyOTIgMjYuMDYwMyAzMS43OTczIDI3LjA2NDZDMzAuMjQ2MiAyOS40MjAzIDI4LjEwNDIgMzEuMzU1MSAyNS41ODU2IDMyLjY2MjJaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjIyXzE2NzApIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjIyXzE2NzAiIHgxPSIxNy45OTk3IiB5MT0iMzYuNzc4OSIgeDI9IjE3Ljk5OTciIHkyPSItNS41MTk3OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMDg1OCIgc3RvcC1jb2xvcj0iIzhEMjlDMSIvPgo8c3RvcCBvZmZzZXQ9IjAuMjM4MyIgc3RvcC1jb2xvcj0iIzk0MkJCQiIvPgo8c3RvcCBvZmZzZXQ9IjAuNDY2NyIgc3RvcC1jb2xvcj0iI0E5MkZBQyIvPgo8c3RvcCBvZmZzZXQ9IjAuNzQxMyIgc3RvcC1jb2xvcj0iI0NBMzc5MyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGMDNGNzciLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true\n },\n {\n name: \"Backpack\",\n url: \"https://chromewebstore.google.com/detail/backpack/aflkmfhebedbjioipglgcbcmnbpgliof\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxyZWN0IHg9IjEwIiB3aWR0aD0iNDQiIGhlaWdodD0iNjQiIGZpbGw9InVybCgjcGF0dGVybjBfMTdfNCkiLz4KPGRlZnM+CjxwYXR0ZXJuIGlkPSJwYXR0ZXJuMF8xN180IiBwYXR0ZXJuQ29udGVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+Cjx1c2UgeGxpbms6aHJlZj0iI2ltYWdlMF8xN180IiB0cmFuc2Zvcm09InNjYWxlKDAuMDE4MTgxOCAwLjAxMjUpIi8+CjwvcGF0dGVybj4KPGltYWdlIGlkPSJpbWFnZTBfMTdfNCIgd2lkdGg9IjU1IiBoZWlnaHQ9IjgwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURjQUFBQlFDQVlBQUFDOUt1MmtBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBUWpTVVJCVkhnQjdadlJjZHRHRUliL1BkTFBvUjh6SThsVUJXWUY1TG1DT0JWWXFzQmhCWllyaUZPQjVRcXNWT0FqWFlDWkNrUmJtc2xqK0I0U20xMlFZaUNKU2tqY3dpSXc5ODF3UUkxQTRIN2NZZkh2M29GUUFaZmVkOXBBanhib3dmRnpCanBZZnRZdzA4UXh2bklMa3prd09RNWhCbU1JaGx4NTc2WFZiOEFpNm82WUxWcHl3Um45ZnZRNW5NTUlFM0VxaXBqZk02T0xTS1JCMDh6UjhDaUVDMFRpRU1sVnYvOEdHWCt5RUtiSUVPNVN4aC96NDBZUzFYUExCdEFaS2lKakdqNzdITjZoSktYRlNkRG90ak8rUkxYTTVvNk95d2FiTmtvaVArenF5VUUwbFNzMGtXSDVsUml6ckFWdHlJeVFiM1cvNlVQSG1PUGZvYXpEMFMzUVlaSkFSSGdPRFVqTXZSYmc1WHYwL1pkSUpLckgxS0hjNVUrSnFMb3RCbzdDaVdjU0xHWS9oakJGUlVTTDIrQWplMWcrMEhleFh4SjFNZEV0WlRTeThwdWx4S21nSnd1Y3NPT2ZSSWhIVlJDQytNMFBUMW9JWlhwNEozRUZZK3p4blNIQ09STjlPQXdoYlAyYmJYYkszWWdZNDhjUWRRL0pIdHBFdzIxNjhuK05zL2pIMTduTjJnZGhDdVBsWE5xempiRitzT2Z5UU1IOGNXOUViVUo2Y1U1MCtsRGcyU2h1SmV6VEt1bTBhWWQ0VU4weTg3MnNQTzdBRWxtSlhtd1N1SEZZbWdtVEU1T2tMZUxzbng2TXdyRitEc2VqcCtyMDJkR3BCSWtwWXBGMmFudTFRKzZmL2c3Zit2MWZDZlFMSWxGUkIxdmtZbGQ5ZnlZdGpFNU1HZnp1YUR3ZTNtcEQ4WTl2M3A5SUZ2d2VrVWp4NTNTWFdvalZlZUhvUmZGUmNXdFlPbzYvZ25LOTN1NWE1SkY2aWV4UHZ5RVN2VURGNGJrV3AxY3Z0ZzZpeFozRGNUaERDZVlPWjFnbHVHWFJoTGVkWVgxTHJjV1o5QnFYdi9yTGFCZmZlOUtJMXpmZmNuRnFxMHlxVitJQkVRRTVrM0pDSjdlSldJbVQyc2NyR0hBUXdnUVIvQTJEUjRPUzRhVnVWc09TUGZZQXU1STY1NTFGMTk3M09PTXZNRUFmMWpFTnpKMVJ4bi9CZ0xZWUJaY3RiQ3JGK1FFUjUycGlmMTlrc1lCM1lvSE1Ebmd6MXN0aWRlOHJVdi9zdVZVQjFPcVFyMjdxSnJ1aU9hT1k2aE1ZUWNRL1NFQmhPNGN1WVhqTzVXeFVtdzNzVndHdDVUZ3h5VjFZSXZuZjlXQ3dVMFB6L1kzelJobmlIYm9lK0VzWkRsMFlvMWFzSlViMnY4b0JWZFprOVB4MDFSOHdxbVExWTBvdFRIVlNaS0dKcWtTeXlpdG5ldXJLeFQwaTBUT3IrMHdTVjFlU3VMcVN4TldWSks2dUpIRjFKWW1ySzFwbUNHZ2lSQmRPWnlaTjVzbjJDWmtYYkJPRzZ5bXNteEowM2RIRk83R1Y3MFFpa2JoSEhpMTFOUTRSblZndG4zOVVTTmRiYzlDVkRXUzFOR1Avb0xkYVR2ZG9JQ1NUTXVvdDdhYXc5b2g4S1Q4YVRCSlhWNUs0dXBMRTFaVWtycTQwWHB6NSs5bjdncE5VcDVIaWRLbUdrOXlua2VLWVNNU0Iva0FEa1pSbjZzamhIQTBreTJpMExETU1CbDhzWDIxNWJQUitPeGlQanZOSGdaVFVmMjVNU1YxcUtMcm1iUG0xZ0w1YmdBeGVoRDZUZjNTcldQQm16RXlqUFM5ZnVwOHc0ZGJMZy84QUhSZXNCMHpiQzQ0QUFBQUFTVVZPUks1Q1lJST0iLz4KPC9kZWZzPgo8L3N2Zz4K\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: \"https://backpack.app/ul/v1?url=\"\n },\n {\n name: \"Bitget Wallet\",\n url: \"https://web3.bitget.com\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSIjMDAxRjI5Ii8+CjxwYXRoIGQ9Ik0yMTkuOTQ4IDk1LjcwMjJDMjAxLjYyMyA5NS42OTI5IDE4My4zMyA5NS42ODM1IDE2NC45NDEgOTUuNzExNkMxNTMuODIyIDk1LjcxMTYgMTQ5LjY1MSAxMDkuNjcxIDE1Ny45MjEgMTE3LjkzOUwyODMuMDk4IDI0My4xMTdDMjg3LjAwNCAyNDYuNjkgMjg5LjQ0MSAyNTAuNTc0IDI4OS41MyAyNTUuNjkzQzI4OS40NDEgMjYwLjgxMiAyODcuMDA0IDI2NC42OTYgMjgzLjA5OCAyNjguMjY5TDE1Ny45MjEgMzkzLjQ0NkMxNDkuNjUxIDQwMS43MTUgMTUzLjgyMiA0MTUuNjc0IDE2NC45NDEgNDE1LjY3NEMxODMuMzMgNDE1LjcwMiAyMDEuNjIzIDQxNS42OTMgMjE5Ljk0OCA0MTUuNjgzQzIyOS4xMjIgNDE1LjY3OSAyMzguMzA1IDQxNS42NzQgMjQ3LjUxMSA0MTUuNjc0QzI1OS41NTUgNDE1LjY3NCAyNjYuNzIgNDA5LjI0IDI3My4xNTQgNDAyLjgwNUwzODYuMDQ3IDI4OS45MTJDMzk1LjA1NyAyODAuOTAyIDQwMy4xMTkgMjY4LjkzOSA0MDMuMDA5IDI1NS42OTNDNDAzLjExOSAyNDIuNDQ3IDM5NS4wNTcgMjMwLjQ4NCAzODYuMDQ3IDIyMS40NzRMMjczLjE1NCAxMDguNThDMjY2LjcyIDEwMi4xNDYgMjU5LjU1NSA5NS43MTE2IDI0Ny41MTEgOTUuNzExNkMyMzguMzA1IDk1LjcxMTYgMjI5LjEyMiA5NS43MDY5IDIxOS45NDggOTUuNzAyMloiIGZpbGw9IiMwMEYwRkYiLz4KPC9zdmc+Cg==\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true\n },\n {\n name: \"Gate Wallet\",\n url: \"https://www.gate.com/zh/web3/\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNjAwcHgiIGhlaWdodD0iNjAwcHgiIHZpZXdCb3g9IjAgMCA2MDAgNjAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPHRpdGxlPue8lue7hCA3PC90aXRsZT4KICAgIDxkZWZzPgogICAgICAgIDxwb2x5Z29uIGlkPSJwYXRoLTEiIHBvaW50cz0iMCAwIDYwMCAwIDYwMCA2MDAgMCA2MDAiPjwvcG9seWdvbj4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSLmjaLoibIiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJTVkciIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNzU1LjAwMDAwMCwgLTU1MTguMDAwMDAwKSI+CiAgICAgICAgICAgIDxnIGlkPSLnvJbnu4QtNyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTc1NS4wMDAwMDAsIDU1MTguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0i57yW57uEIj4KICAgICAgICAgICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgPC9tYXNrPgogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJDbGlwLTIiPjwvZz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzAwLDQ2NC45OTg0MjcgQzIwOC44NzMwNjksNDY0Ljk5ODQyNyAxMzQuOTk2NTA0LDM5MS4xMjI1NjYgMTM0Ljk5NjUwNCwyOTkuOTk2NTA0IEMxMzQuOTk2NTA0LDIwOC44NzA0NDIgMjA4Ljg3MzA2OSwxMzUuMDAwOTM4IDMwMCwxMzUuMDAwOTM4IEwzMDAsLTAuMDAwNjM1NjAwNjI0IEMxMzQuMzEwMDQ5LC0wLjAwMDYzNTYwMDYyNCAwLDEzNC4zMTQ0ODkgMCwyOTkuOTk2NTA0IEMwLDQ2NS42Nzg1MiAxMzQuMzEwMDQ5LDYwMCAzMDAsNjAwIEM0NjUuNjg5OTUxLDYwMCA2MDAsNDY1LjY3ODUyIDYwMCwyOTkuOTk2NTA0IEw0NjUuMDAzNDk2LDI5OS45OTY1MDQgQzQ2NS4wMDM0OTYsMzkxLjEyMjU2NiAzOTEuMTI2OTMxLDQ2NC45OTg0MjcgMzAwLDQ2NC45OTg0MjciIGlkPSJGaWxsLTEiIGZpbGw9IiMyMzU0RTYiIG1hc2s9InVybCgjbWFzay0yKSI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IkZpbGwtMyIgZmlsbD0iIzE3RTZBMSIgcG9pbnRzPSIyOTkuOTkyMzczIDI5OS45OTcxNCA0NjQuOTk1ODY5IDI5OS45OTcxNCA0NjQuOTk1ODY5IDEzNC45OTUyMTcgMjk5Ljk5MjM3MyAxMzQuOTk1MjE3Ij48L3BvbHlnb24+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true\n },\n {\n name: \"Cosmostation Wallet\",\n url: \"https://www.cosmostation.io/\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgdmlld0JveD0iMCAwIDEyOCAxMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0wIDQwQzAgMTcuOTA4NiAxNy45MDg2IDAgNDAgMEg4OEMxMTAuMDkxIDAgMTI4IDE3LjkwODYgMTI4IDQwVjg4QzEyOCAxMTAuMDkxIDExMC4wOTEgMTI4IDg4IDEyOEg0MEMxNy45MDg2IDEyOCAwIDExMC4wOTEgMCA4OFY0MFoiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl85MDg4XzE0OTgxKSIvPgo8cGF0aCBkPSJNNTEuMDI1MyA4Ni4xNTkxTDM1Ljg2NiA1OS45MDI1QzM1LjQ4ODEgNTkuMjQ3OSAzNS4yODkxIDU4LjUwNTUgMzUuMjg5MSA1Ny43NDk3QzM1LjI4OTEgNTYuOTkzOSAzNS40ODgxIDU2LjI1MTQgMzUuODY2IDU1LjU5NjlMNTEuMDI1MyAyOS4zNTNDNTEuNDAzMiAyOC42OTg0IDUxLjk0NjggMjguMTU0OSA1Mi42MDE0IDI3Ljc3N0M1My4yNTU5IDI3LjM5OTEgNTMuOTk4NSAyNy4yMDAyIDU0Ljc1NDMgMjcuMjAwMkg4NS4wNjAyQzg1LjgxNjEgMjcuMjAwMiA4Ni41NTg2IDI3LjM5OTEgODcuMjEzMiAyNy43NzdDODcuODY3OCAyOC4xNTQ5IDg4LjQxMTMgMjguNjk4NCA4OC43ODkyIDI5LjM1M0wxMDQgNTUuNjIyNEw5Ni41NDE5IDU5LjkyODFMODIuNjI1NSAzNS44MzcxSDU3LjI0MDNMNDQuNTY2OSA1Ny43NzUyTDU4LjQ4MzMgODEuODc5TDUxLjAyNTMgODYuMTU5MVoiIGZpbGw9IiM5QzZDRkYiLz4KPHBhdGggZD0iTTczLjI0NTYgMTAwLjQ0OEg0Mi44NzU1QzQyLjExOTcgMTAwLjQ0OCA0MS4zNzcyIDEwMC4yNDkgNDAuNzIyNiA5OS44NzExQzQwLjA2ODEgOTkuNDkzMiAzOS41MjQ1IDk4Ljk0OTYgMzkuMTQ2NiA5OC4yOTUxTDI0IDcyLjA2NDFMMzEuNDQ1MSA2Ny43NTg1TDQ1LjM2MTUgOTEuODYyM0g3MC42ODI3TDgzLjM0MzMgNjkuOTExM0w2OS40Mzk3IDQ1LjgyMDNMNzYuODg0OSA0MS41MTQ2TDkyLjA0NDIgNjcuNzU4NUM5Mi40MjIxIDY4LjQxMyA5Mi42MjExIDY5LjE1NTUgOTIuNjIxMSA2OS45MTEzQzkyLjYyMTEgNzAuNjY3MSA5Mi40MjIxIDcxLjQwOTYgOTIuMDQ0MiA3Mi4wNjQxTDc2Ljg4NDkgOTguMzIwN0M3Ni41MTM0IDk4Ljk1OTIgNzUuOTgzIDk5LjQ5MDYgNzUuMzQ1MyA5OS44NjM0Qzc0LjcwNzUgMTAwLjIzNiA3My45ODQyIDEwMC40MzggNzMuMjQ1NiAxMDAuNDQ4WiIgZmlsbD0iIzA1RDJERCIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzkwODhfMTQ5ODEiIHgxPSI2NCIgeTE9IjAiIHgyPSI2NCIgeTI9IjEyOCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjEyMTIxIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzE3MTcxNyIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true\n }\n];\nvar crossChainStandardSupportedWalletList = [\n {\n name: \"Phantom (Solana)\",\n url: \"https://phantom.com/\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA4IiBoZWlnaHQ9IjEwOCIgdmlld0JveD0iMCAwIDEwOCAxMDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiByeD0iMjYiIGZpbGw9IiNBQjlGRjIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00Ni41MjY3IDY5LjkyMjlDNDIuMDA1NCA3Ni44NTA5IDM0LjQyOTIgODUuNjE4MiAyNC4zNDggODUuNjE4MkMxOS41ODI0IDg1LjYxODIgMTUgODMuNjU2MyAxNSA3NS4xMzQyQzE1IDUzLjQzMDUgNDQuNjMyNiAxOS44MzI3IDcyLjEyNjggMTkuODMyN0M4Ny43NjggMTkuODMyNyA5NCAzMC42ODQ2IDk0IDQzLjAwNzlDOTQgNTguODI1OCA4My43MzU1IDc2LjkxMjIgNzMuNTMyMSA3Ni45MTIyQzcwLjI5MzkgNzYuOTEyMiA2OC43MDUzIDc1LjEzNDIgNjguNzA1MyA3Mi4zMTRDNjguNzA1MyA3MS41NzgzIDY4LjgyNzUgNzAuNzgxMiA2OS4wNzE5IDY5LjkyMjlDNjUuNTg5MyA3NS44Njk5IDU4Ljg2ODUgODEuMzg3OCA1Mi41NzU0IDgxLjM4NzhDNDcuOTkzIDgxLjM4NzggNDUuNjcxMyA3OC41MDYzIDQ1LjY3MTMgNzQuNDU5OEM0NS42NzEzIDcyLjk4ODQgNDUuOTc2OCA3MS40NTU2IDQ2LjUyNjcgNjkuOTIyOVpNODMuNjc2MSA0Mi41Nzk0QzgzLjY3NjEgNDYuMTcwNCA4MS41NTc1IDQ3Ljk2NTggNzkuMTg3NSA0Ny45NjU4Qzc2Ljc4MTYgNDcuOTY1OCA3NC42OTg5IDQ2LjE3MDQgNzQuNjk4OSA0Mi41Nzk0Qzc0LjY5ODkgMzguOTg4NSA3Ni43ODE2IDM3LjE5MzEgNzkuMTg3NSAzNy4xOTMxQzgxLjU1NzUgMzcuMTkzMSA4My42NzYxIDM4Ljk4ODUgODMuNjc2MSA0Mi41Nzk0Wk03MC4yMTAzIDQyLjU3OTVDNzAuMjEwMyA0Ni4xNzA0IDY4LjA5MTYgNDcuOTY1OCA2NS43MjE2IDQ3Ljk2NThDNjMuMzE1NyA0Ny45NjU4IDYxLjIzMyA0Ni4xNzA0IDYxLjIzMyA0Mi41Nzk1QzYxLjIzMyAzOC45ODg1IDYzLjMxNTcgMzcuMTkzMSA2NS43MjE2IDM3LjE5MzFDNjguMDkxNiAzNy4xOTMxIDcwLjIxMDMgMzguOTg4NSA3MC4yMTAzIDQyLjU3OTVaIiBmaWxsPSIjRkZGREY4Ii8+Cjwvc3ZnPgo=\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: `https://phantom.app/ul/browse/`\n },\n {\n name: \"Phantom (Ethereum)\",\n url: \"https://phantom.com/\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA4IiBoZWlnaHQ9IjEwOCIgdmlld0JveD0iMCAwIDEwOCAxMDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiByeD0iMjYiIGZpbGw9IiNBQjlGRjIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00Ni41MjY3IDY5LjkyMjlDNDIuMDA1NCA3Ni44NTA5IDM0LjQyOTIgODUuNjE4MiAyNC4zNDggODUuNjE4MkMxOS41ODI0IDg1LjYxODIgMTUgODMuNjU2MyAxNSA3NS4xMzQyQzE1IDUzLjQzMDUgNDQuNjMyNiAxOS44MzI3IDcyLjEyNjggMTkuODMyN0M4Ny43NjggMTkuODMyNyA5NCAzMC42ODQ2IDk0IDQzLjAwNzlDOTQgNTguODI1OCA4My43MzU1IDc2LjkxMjIgNzMuNTMyMSA3Ni45MTIyQzcwLjI5MzkgNzYuOTEyMiA2OC43MDUzIDc1LjEzNDIgNjguNzA1MyA3Mi4zMTRDNjguNzA1MyA3MS41NzgzIDY4LjgyNzUgNzAuNzgxMiA2OS4wNzE5IDY5LjkyMjlDNjUuNTg5MyA3NS44Njk5IDU4Ljg2ODUgODEuMzg3OCA1Mi41NzU0IDgxLjM4NzhDNDcuOTkzIDgxLjM4NzggNDUuNjcxMyA3OC41MDYzIDQ1LjY3MTMgNzQuNDU5OEM0NS42NzEzIDcyLjk4ODQgNDUuOTc2OCA3MS40NTU2IDQ2LjUyNjcgNjkuOTIyOVpNODMuNjc2MSA0Mi41Nzk0QzgzLjY3NjEgNDYuMTcwNCA4MS41NTc1IDQ3Ljk2NTggNzkuMTg3NSA0Ny45NjU4Qzc2Ljc4MTYgNDcuOTY1OCA3NC42OTg5IDQ2LjE3MDQgNzQuNjk4OSA0Mi41Nzk0Qzc0LjY5ODkgMzguOTg4NSA3Ni43ODE2IDM3LjE5MzEgNzkuMTg3NSAzNy4xOTMxQzgxLjU1NzUgMzcuMTkzMSA4My42NzYxIDM4Ljk4ODUgODMuNjc2MSA0Mi41Nzk0Wk03MC4yMTAzIDQyLjU3OTVDNzAuMjEwMyA0Ni4xNzA0IDY4LjA5MTYgNDcuOTY1OCA2NS43MjE2IDQ3Ljk2NThDNjMuMzE1NyA0Ny45NjU4IDYxLjIzMyA0Ni4xNzA0IDYxLjIzMyA0Mi41Nzk1QzYxLjIzMyAzOC45ODg1IDYzLjMxNTcgMzcuMTkzMSA2NS43MjE2IDM3LjE5MzFDNjguMDkxNiAzNy4xOTMxIDcwLjIxMDMgMzguOTg4NSA3MC4yMTAzIDQyLjU3OTVaIiBmaWxsPSIjRkZGREY4Ii8+Cjwvc3ZnPgo=\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: `https://phantom.app/ul/browse/`\n },\n {\n name: \"Nightly (Solana)\",\n url: \"https://nightly.app/\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: \"nightly://v1?network=aptos&url=\"\n },\n {\n name: \"Nightly (Ethereum)\",\n url: \"https://nightly.app/\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: \"nightly://v1?network=aptos&url=\"\n },\n {\n name: \"Metamask (Solana)\",\n url: \"https://metamask.io/\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiB2aWV3Qm94PSIwIDAgMjU2IDI0MCI+PHBhdGggZmlsbD0iI0UxNzcyNiIgZD0iTTI1MC4wNjYgMEwxNDAuMjE5IDgxLjI3OWwyMC40MjctNDcuOXoiLz48cGF0aCBmaWxsPSIjRTI3NjI1IiBkPSJtNi4xOTEuMDk2bDg5LjE4MSAzMy4yODlsMTkuMzk2IDQ4LjUyOHpNMjA1Ljg2IDE3Mi44NThsNDguNTUxLjkyNGwtMTYuOTY4IDU3LjY0MmwtNTkuMjQzLTE2LjMxMXptLTE1NS43MjEgMGwyNy41NTcgNDIuMjU1bC01OS4xNDMgMTYuMzEybC0xNi44NjUtNTcuNjQzeiIvPjxwYXRoIGZpbGw9IiNFMjc2MjUiIGQ9Im0xMTIuMTMxIDY5LjU1MmwxLjk4NCA2NC4wODNsLTU5LjM3MS0yLjcwMWwxNi44ODgtMjUuNDc4bC4yMTQtLjI0NXptMzEuMTIzLS43MTVsNDAuOSAzNi4zNzZsLjIxMi4yNDRsMTYuODg4IDI1LjQ3OGwtNTkuMzU4IDIuN3pNNzkuNDM1IDE3My4wNDRsMzIuNDE4IDI1LjI1OWwtMzcuNjU4IDE4LjE4MXptOTcuMTM2LS4wMDRsNS4xMzEgNDMuNDQ1bC0zNy41NTMtMTguMTg0eiIvPjxwYXRoIGZpbGw9IiNENUJGQjIiIGQ9Im0xNDQuOTc4IDE5NS45MjJsMzguMTA3IDE4LjQ1MmwtMzUuNDQ3IDE2Ljg0NmwuMzY4LTExLjEzNHptLTMzLjk2Ny4wMDhsLTIuOTA5IDIzLjk3NGwuMjM5IDExLjMwM2wtMzUuNTMtMTYuODMzeiIvPjxwYXRoIGZpbGw9IiMyMzM0NDciIGQ9Im0xMDAuMDA3IDE0MS45OTlsOS45NTggMjAuOTI4bC0zMy45MDMtOS45MzJ6bTU1Ljk4NS4wMDJsMjQuMDU4IDEwLjk5NGwtMzQuMDE0IDkuOTI5eiIvPjxwYXRoIGZpbGw9IiNDQzYyMjgiIGQ9Im04Mi4wMjYgMTcyLjgzbC01LjQ4IDQ1LjA0bC0yOS4zNzMtNDQuMDU1em05MS45NS4wMDFsMzQuODU0Ljk4NGwtMjkuNDgzIDQ0LjA1N3ptMjguMTM2LTQ0LjQ0NGwtMjUuMzY1IDI1Ljg1MWwtMTkuNTU3LTguOTM3bC05LjM2MyAxOS42ODRsLTYuMTM4LTMzLjg0OXptLTE0OC4yMzcgMGw2MC40MzUgMi43NDlsLTYuMTM5IDMzLjg0OWwtOS4zNjUtMTkuNjgxbC0xOS40NTMgOC45MzV6Ii8+PHBhdGggZmlsbD0iI0UyNzUyNSIgZD0ibTUyLjE2NiAxMjMuMDgybDI4LjY5OCAyOS4xMjFsLjk5NCAyOC43NDl6bTE1MS42OTctLjA1MmwtMjkuNzQ2IDU3Ljk3M2wxLjEyLTI4Ljh6bS05MC45NTYgMS44MjZsMS4xNTUgNy4yN2wyLjg1NCAxOC4xMTFsLTEuODM1IDU1LjYyNWwtOC42NzUtNDQuNjg1bC0uMDAzLS40NjJ6bTMwLjE3MS0uMTAxbDYuNTIxIDM1Ljk2bC0uMDAzLjQ2MmwtOC42OTcgNDQuNzk3bC0uMzQ0LTExLjIwNWwtMS4zNTctNDQuODYyeiIvPjxwYXRoIGZpbGw9IiNGNTg0MUYiIGQ9Im0xNzcuNzg4IDE1MS4wNDZsLS45NzEgMjQuOTc4bC0zMC4yNzQgMjMuNTg3bC02LjEyLTQuMzI0bDYuODYtMzUuMzM1em0tOTkuNDcxIDBsMzAuMzk5IDguOTA2bDYuODYgMzUuMzM1bC02LjEyIDQuMzI0bC0zMC4yNzUtMjMuNTg5eiIvPjxwYXRoIGZpbGw9IiNDMEFDOUQiIGQ9Im02Ny4wMTggMjA4Ljg1OGwzOC43MzIgMTguMzUybC0uMTY0LTcuODM3bDMuMjQxLTIuODQ1aDM4LjMzNGwzLjM1OCAyLjgzNWwtLjI0OCA3LjgzMWwzOC40ODctMTguMjlsLTE4LjcyOCAxNS40NzZsLTIyLjY0NSAxNS41NTNoLTM4Ljg2OWwtMjIuNjMtMTUuNjE3eiIvPjxwYXRoIGZpbGw9IiMxNjE2MTYiIGQ9Im0xNDIuMjA0IDE5My40NzlsNS40NzYgMy44NjlsMy4yMDkgMjUuNjA0bC00LjY0NC0zLjkyMWgtMzYuNDc2bC00LjU1NiA0bDMuMTA0LTI1LjY4MWw1LjQ3OC0zLjg3MXoiLz48cGF0aCBmaWxsPSIjNzYzRTFBIiBkPSJNMjQyLjgxNCAyLjI1TDI1NiA0MS44MDdsLTguMjM1IDM5Ljk5N2w1Ljg2NCA0LjUyM2wtNy45MzUgNi4wNTRsNS45NjQgNC42MDZsLTcuODk3IDcuMTkxbDQuODQ4IDMuNTExbC0xMi44NjYgMTUuMDI2bC01Mi43Ny0xNS4zNjVsLS40NTctLjI0NWwtMzguMDI3LTMyLjA3OHptLTIyOS42MjggMGw5OC4zMjYgNzIuNzc3bC0zOC4wMjggMzIuMDc4bC0uNDU3LjI0NWwtNTIuNzcgMTUuMzY1bC0xMi44NjYtMTUuMDI2bDQuODQ0LTMuNTA4bC03Ljg5Mi03LjE5NGw1Ljk1Mi00LjYwMWwtOC4wNTQtNi4wNzFsNi4wODUtNC41MjZMMCA0MS44MDl6Ii8+PHBhdGggZmlsbD0iI0Y1ODQxRiIgZD0ibTE4MC4zOTIgMTAzLjk5bDU1LjkxMyAxNi4yNzlsMTguMTY1IDU1Ljk4NmgtNDcuOTI0bC0zMy4wMi40MTZsMjQuMDE0LTQ2LjgwOHptLTEwNC43ODQgMGwtMTcuMTUxIDI1Ljg3M2wyNC4wMTcgNDYuODA4bC0zMy4wMDUtLjQxNkgxLjYzMWwxOC4wNjMtNTUuOTg1em04Ny43NzYtNzAuODc4bC0xNS42MzkgNDIuMjM5bC0zLjMxOSA1Ny4wNmwtMS4yNyAxNy44ODVsLS4xMDEgNDUuNjg4aC0zMC4xMTFsLS4wOTgtNDUuNjAybC0xLjI3NC0xNy45ODZsLTMuMzItNTcuMDQ1bC0xNS42MzctNDIuMjM5eiIvPjwvc3ZnPg==\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: \"https://link.metamask.io/dapp/\"\n },\n {\n name: \"Metamask (Ethereum)\",\n url: \"https://metamask.io/\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiB2aWV3Qm94PSIwIDAgMjU2IDI0MCI+PHBhdGggZmlsbD0iI0UxNzcyNiIgZD0iTTI1MC4wNjYgMEwxNDAuMjE5IDgxLjI3OWwyMC40MjctNDcuOXoiLz48cGF0aCBmaWxsPSIjRTI3NjI1IiBkPSJtNi4xOTEuMDk2bDg5LjE4MSAzMy4yODlsMTkuMzk2IDQ4LjUyOHpNMjA1Ljg2IDE3Mi44NThsNDguNTUxLjkyNGwtMTYuOTY4IDU3LjY0MmwtNTkuMjQzLTE2LjMxMXptLTE1NS43MjEgMGwyNy41NTcgNDIuMjU1bC01OS4xNDMgMTYuMzEybC0xNi44NjUtNTcuNjQzeiIvPjxwYXRoIGZpbGw9IiNFMjc2MjUiIGQ9Im0xMTIuMTMxIDY5LjU1MmwxLjk4NCA2NC4wODNsLTU5LjM3MS0yLjcwMWwxNi44ODgtMjUuNDc4bC4yMTQtLjI0NXptMzEuMTIzLS43MTVsNDAuOSAzNi4zNzZsLjIxMi4yNDRsMTYuODg4IDI1LjQ3OGwtNTkuMzU4IDIuN3pNNzkuNDM1IDE3My4wNDRsMzIuNDE4IDI1LjI1OWwtMzcuNjU4IDE4LjE4MXptOTcuMTM2LS4wMDRsNS4xMzEgNDMuNDQ1bC0zNy41NTMtMTguMTg0eiIvPjxwYXRoIGZpbGw9IiNENUJGQjIiIGQ9Im0xNDQuOTc4IDE5NS45MjJsMzguMTA3IDE4LjQ1MmwtMzUuNDQ3IDE2Ljg0NmwuMzY4LTExLjEzNHptLTMzLjk2Ny4wMDhsLTIuOTA5IDIzLjk3NGwuMjM5IDExLjMwM2wtMzUuNTMtMTYuODMzeiIvPjxwYXRoIGZpbGw9IiMyMzM0NDciIGQ9Im0xMDAuMDA3IDE0MS45OTlsOS45NTggMjAuOTI4bC0zMy45MDMtOS45MzJ6bTU1Ljk4NS4wMDJsMjQuMDU4IDEwLjk5NGwtMzQuMDE0IDkuOTI5eiIvPjxwYXRoIGZpbGw9IiNDQzYyMjgiIGQ9Im04Mi4wMjYgMTcyLjgzbC01LjQ4IDQ1LjA0bC0yOS4zNzMtNDQuMDU1em05MS45NS4wMDFsMzQuODU0Ljk4NGwtMjkuNDgzIDQ0LjA1N3ptMjguMTM2LTQ0LjQ0NGwtMjUuMzY1IDI1Ljg1MWwtMTkuNTU3LTguOTM3bC05LjM2MyAxOS42ODRsLTYuMTM4LTMzLjg0OXptLTE0OC4yMzcgMGw2MC40MzUgMi43NDlsLTYuMTM5IDMzLjg0OWwtOS4zNjUtMTkuNjgxbC0xOS40NTMgOC45MzV6Ii8+PHBhdGggZmlsbD0iI0UyNzUyNSIgZD0ibTUyLjE2NiAxMjMuMDgybDI4LjY5OCAyOS4xMjFsLjk5NCAyOC43NDl6bTE1MS42OTctLjA1MmwtMjkuNzQ2IDU3Ljk3M2wxLjEyLTI4Ljh6bS05MC45NTYgMS44MjZsMS4xNTUgNy4yN2wyLjg1NCAxOC4xMTFsLTEuODM1IDU1LjYyNWwtOC42NzUtNDQuNjg1bC0uMDAzLS40NjJ6bTMwLjE3MS0uMTAxbDYuNTIxIDM1Ljk2bC0uMDAzLjQ2MmwtOC42OTcgNDQuNzk3bC0uMzQ0LTExLjIwNWwtMS4zNTctNDQuODYyeiIvPjxwYXRoIGZpbGw9IiNGNTg0MUYiIGQ9Im0xNzcuNzg4IDE1MS4wNDZsLS45NzEgMjQuOTc4bC0zMC4yNzQgMjMuNTg3bC02LjEyLTQuMzI0bDYuODYtMzUuMzM1em0tOTkuNDcxIDBsMzAuMzk5IDguOTA2bDYuODYgMzUuMzM1bC02LjEyIDQuMzI0bC0zMC4yNzUtMjMuNTg5eiIvPjxwYXRoIGZpbGw9IiNDMEFDOUQiIGQ9Im02Ny4wMTggMjA4Ljg1OGwzOC43MzIgMTguMzUybC0uMTY0LTcuODM3bDMuMjQxLTIuODQ1aDM4LjMzNGwzLjM1OCAyLjgzNWwtLjI0OCA3LjgzMWwzOC40ODctMTguMjlsLTE4LjcyOCAxNS40NzZsLTIyLjY0NSAxNS41NTNoLTM4Ljg2OWwtMjIuNjMtMTUuNjE3eiIvPjxwYXRoIGZpbGw9IiMxNjE2MTYiIGQ9Im0xNDIuMjA0IDE5My40NzlsNS40NzYgMy44NjlsMy4yMDkgMjUuNjA0bC00LjY0NC0zLjkyMWgtMzYuNDc2bC00LjU1NiA0bDMuMTA0LTI1LjY4MWw1LjQ3OC0zLjg3MXoiLz48cGF0aCBmaWxsPSIjNzYzRTFBIiBkPSJNMjQyLjgxNCAyLjI1TDI1NiA0MS44MDdsLTguMjM1IDM5Ljk5N2w1Ljg2NCA0LjUyM2wtNy45MzUgNi4wNTRsNS45NjQgNC42MDZsLTcuODk3IDcuMTkxbDQuODQ4IDMuNTExbC0xMi44NjYgMTUuMDI2bC01Mi43Ny0xNS4zNjVsLS40NTctLjI0NWwtMzguMDI3LTMyLjA3OHptLTIyOS42MjggMGw5OC4zMjYgNzIuNzc3bC0zOC4wMjggMzIuMDc4bC0uNDU3LjI0NWwtNTIuNzcgMTUuMzY1bC0xMi44NjYtMTUuMDI2bDQuODQ0LTMuNTA4bC03Ljg5Mi03LjE5NGw1Ljk1Mi00LjYwMWwtOC4wNTQtNi4wNzFsNi4wODUtNC41MjZMMCA0MS44MDl6Ii8+PHBhdGggZmlsbD0iI0Y1ODQxRiIgZD0ibTE4MC4zOTIgMTAzLjk5bDU1LjkxMyAxNi4yNzlsMTguMTY1IDU1Ljk4NmgtNDcuOTI0bC0zMy4wMi40MTZsMjQuMDE0LTQ2LjgwOHptLTEwNC43ODQgMGwtMTcuMTUxIDI1Ljg3M2wyNC4wMTcgNDYuODA4bC0zMy4wMDUtLjQxNkgxLjYzMWwxOC4wNjMtNTUuOTg1em04Ny43NzYtNzAuODc4bC0xNS42MzkgNDIuMjM5bC0zLjMxOSA1Ny4wNmwtMS4yNyAxNy44ODVsLS4xMDEgNDUuNjg4aC0zMC4xMTFsLS4wOTgtNDUuNjAybC0xLjI3NC0xNy45ODZsLTMuMzItNTcuMDQ1bC0xNS42MzctNDIuMjM5eiIvPjwvc3ZnPg==\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: \"https://link.metamask.io/dapp/\"\n }\n];\n\n// src/sdkWallets.ts\nvar import_wallet_adapter_plugin = require(\"@aptos-connect/wallet-adapter-plugin\");\nfunction getSDKWallets(dappConfig) {\n const sdkWallets = [];\n if (typeof window !== \"undefined\") {\n sdkWallets.push(\n new import_wallet_adapter_plugin.AptosConnectGoogleWallet({\n network: dappConfig?.network,\n dappId: dappConfig?.aptosConnectDappId,\n ...dappConfig?.aptosConnect\n }),\n new import_wallet_adapter_plugin.AptosConnectAppleWallet({\n network: dappConfig?.network,\n dappId: dappConfig?.aptosConnectDappId,\n ...dappConfig?.aptosConnect\n })\n );\n }\n return sdkWallets;\n}\n\n// src/WalletCore.ts\nvar WalletCore = class extends import_eventemitter3.default {\n constructor(optInWallets, dappConfig, disableTelemetry) {\n super();\n // Local private variable to hold the wallet that is currently connected\n this._wallet = null;\n // Local private variable to hold SDK wallets in the adapter\n this._sdkWallets = [];\n // Local array that holds all the wallets that are AIP-62 standard compatible\n this._standard_wallets = [];\n // Local array that holds all the wallets that are AIP-62 standard compatible but are not installed on the user machine\n this._standard_not_detected_wallets = [];\n // Local private variable to hold the network that is currently connected\n this._network = null;\n // Local private variable to hold the wallet connected state\n this._connected = false;\n // Local private variable to hold the connecting state\n this._connecting = false;\n // Local private variable to hold the account that is currently connected\n this._account = null;\n // Private array that holds all the Wallets a dapp decided to opt-in to\n this._optInWallets = [];\n // Local flag to disable the adapter telemetry tool\n this._disableTelemetry = false;\n // Google Analytics 4 module\n this.ga4 = null;\n this._optInWallets = optInWallets || [];\n this._dappConfig = dappConfig;\n this._disableTelemetry = disableTelemetry ?? false;\n this._sdkWallets = getSDKWallets(this._dappConfig);\n if (!this._disableTelemetry) {\n this.ga4 = new GA4();\n }\n this.fetchExtensionAIP62AptosWallets();\n this.fetchSDKAIP62AptosWallets();\n this.appendNotDetectedStandardSupportedWallets();\n }\n fetchExtensionAIP62AptosWallets() {\n let { aptosWallets, on } = (0, import_wallet_standard.getAptosWallets)();\n this.setExtensionAIP62Wallets(aptosWallets);\n if (typeof window === \"undefined\") return;\n const that = this;\n const removeRegisterListener = on(\"register\", function() {\n let { aptosWallets: aptosWallets2 } = (0, import_wallet_standard.getAptosWallets)();\n that.setExtensionAIP62Wallets(aptosWallets2);\n });\n const removeUnregisterListener = on(\"unregister\", function() {\n let { aptosWallets: aptosWallets2 } = (0, import_wallet_standard.getAptosWallets)();\n that.setExtensionAIP62Wallets(aptosWallets2);\n });\n }\n /**\n * Set AIP-62 extension wallets\n *\n * @param extensionwWallets\n */\n setExtensionAIP62Wallets(extensionwWallets) {\n extensionwWallets.map((wallet) => {\n if (this.excludeWallet(wallet)) {\n return;\n }\n if (wallet.name === \"Rimosafe\") {\n return;\n }\n const isValid = (0, import_wallet_standard.isWalletWithRequiredFeatureSet)(wallet);\n if (isValid) {\n const index = this._standard_not_detected_wallets.findIndex(\n (notDetctedWallet) => notDetctedWallet.name == wallet.name\n );\n if (index !== -1) {\n this._standard_not_detected_wallets.splice(index, 1);\n }\n const alreadyExists = this._standard_wallets.some(\n (w) => w.name === wallet.name\n );\n if (!alreadyExists) {\n wallet.readyState = \"Installed\" /* Installed */;\n wallet.isAptosNativeWallet = this.isAptosNativeWallet(wallet);\n this._standard_wallets.push(wallet);\n this.emit(\"standardWalletsAdded\", wallet);\n }\n }\n });\n }\n /**\n * Set AIP-62 SDK wallets\n */\n fetchSDKAIP62AptosWallets() {\n this._sdkWallets.map((wallet) => {\n if (this.excludeWallet(wallet)) {\n return;\n }\n const isValid = (0, import_wallet_standard.isWalletWithRequiredFeatureSet)(wallet);\n if (isValid) {\n wallet.readyState = \"Installed\" /* Installed */;\n wallet.isAptosNativeWallet = this.isAptosNativeWallet(wallet);\n this._standard_wallets.push(wallet);\n }\n });\n }\n // Aptos native wallets do not have an authenticationFunction property\n isAptosNativeWallet(wallet) {\n return !(\"authenticationFunction\" in wallet);\n }\n // Since we can't discover AIP-62 wallets that are not installed on the user machine,\n // we hold a AIP-62 wallets registry to show on the wallet selector modal for the users.\n // Append wallets from wallet standard support registry to the `_standard_not_detected_wallets` array\n // when wallet is not installed on the user machine\n appendNotDetectedStandardSupportedWallets() {\n const walletRegistry = this._dappConfig?.crossChainWallets ? [\n ...aptosStandardSupportedWalletList,\n ...crossChainStandardSupportedWalletList\n ] : aptosStandardSupportedWalletList;\n walletRegistry.map((supportedWallet) => {\n const existingStandardWallet = this._standard_wallets.find(\n (wallet) => wallet.name == supportedWallet.name\n );\n if (existingStandardWallet) {\n return;\n }\n if (this.excludeWallet(supportedWallet)) {\n return;\n }\n if (!existingStandardWallet) {\n supportedWallet.isAptosNativeWallet = !(\"authenticationFunction\" in supportedWallet);\n this._standard_not_detected_wallets.push(supportedWallet);\n this.emit(\"standardNotDetectedWalletAdded\", supportedWallet);\n }\n });\n }\n /**\n * A function that excludes an AIP-62 compatible wallet the dapp doesnt want to include\n *\n * @param wallet AdapterWallet | AdapterNotDetectedWallet\n * @returns boolean\n */\n excludeWallet(wallet) {\n if (this._optInWallets.length > 0 && !this._optInWallets.includes(wallet.name)) {\n return true;\n }\n return false;\n }\n recordEvent(eventName, additionalInfo) {\n this.ga4?.gtag(\"event\", `wallet_adapter_${eventName}`, {\n wallet: this._wallet?.name,\n network: this._network?.name,\n network_url: this._network?.url,\n adapter_core_version: WALLET_ADAPTER_CORE_VERSION,\n send_to: \"G-GNVVWBL3J9\",\n ...additionalInfo\n });\n }\n /**\n * Helper function to ensure wallet exists\n *\n * @param wallet A wallet\n */\n ensureWalletExists(wallet) {\n if (!wallet) {\n throw new WalletNotConnectedError().name;\n }\n if (!(wallet.readyState === \"Installed\" /* Installed */))\n throw new WalletNotReadyError(\"Wallet is not set\").name;\n }\n /**\n * Helper function to ensure account exists\n *\n * @param account An account\n */\n ensureAccountExists(account) {\n if (!account) {\n throw new WalletAccountError(\"Account is not set\").name;\n }\n }\n /**\n * Queries and sets ANS name for the current connected wallet account\n */\n async setAnsName() {\n if (this._network?.chainId && this._account) {\n if (this._account.ansName) return;\n if (!ChainIdToAnsSupportedNetworkMap[this._network.chainId] || !isAptosNetwork(this._network)) {\n this._account.ansName = void 0;\n return;\n }\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new import_ts_sdk2.Aptos(aptosConfig);\n try {\n const name = await aptos.ans.getPrimaryName({\n address: this._account.address.toString()\n });\n this._account.ansName = name;\n } catch (error) {\n console.log(`Error setting ANS name ${error}`);\n }\n }\n }\n /**\n * Function to cleat wallet adapter data.\n *\n * - Removes current connected wallet state\n * - Removes current connected account state\n * - Removes current connected network state\n * - Removes autoconnect local storage value\n */\n clearData() {\n this._connected = false;\n this.setWallet(null);\n this.setAccount(null);\n this.setNetwork(null);\n removeLocalStorage();\n }\n /**\n * Sets the connected wallet\n *\n * @param wallet A wallet\n */\n setWallet(wallet) {\n this._wallet = wallet;\n }\n /**\n * Sets the connected account\n *\n * @param account An account\n */\n setAccount(account) {\n this._account = account;\n }\n /**\n * Sets the connected network\n *\n * @param network A network\n */\n setNetwork(network) {\n this._network = network;\n }\n /**\n * Helper function to detect whether a wallet is connected\n *\n * @returns boolean\n */\n isConnected() {\n return this._connected;\n }\n /**\n * Getter to fetch all detected wallets\n */\n get wallets() {\n return this._standard_wallets;\n }\n get notDetectedWallets() {\n return this._standard_not_detected_wallets;\n }\n /**\n * Getter for the current connected wallet\n *\n * @return wallet info\n * @throws WalletNotSelectedError\n */\n get wallet() {\n try {\n if (!this._wallet) return null;\n return this._wallet;\n } catch (error) {\n throw new WalletNotSelectedError(error).message;\n }\n }\n /**\n * Getter for the current connected account\n *\n * @return account info\n * @throws WalletAccountError\n */\n get account() {\n try {\n return this._account;\n } catch (error) {\n throw new WalletAccountError(error).message;\n }\n }\n /**\n * Getter for the current wallet network\n *\n * @return network info\n * @throws WalletGetNetworkError\n */\n get network() {\n try {\n return this._network;\n } catch (error) {\n throw new WalletGetNetworkError(error).message;\n }\n }\n /**\n * Helper function to run some checks before we connect with a wallet.\n *\n * @param walletName. The wallet name we want to connect with.\n */\n async connect(walletName) {\n if (isRedirectable()) {\n const selectedWallet2 = this._standard_not_detected_wallets.find(\n (wallet) => wallet.name === walletName\n );\n if (selectedWallet2) {\n const uninstalledWallet = selectedWallet2;\n if (uninstalledWallet.deeplinkProvider) {\n let parameter = \"\";\n if (uninstalledWallet.name.includes(\"Phantom\")) {\n let url = encodeURIComponent(window.location.href);\n let ref = encodeURIComponent(window.location.origin);\n parameter = `${url}?ref=${ref}`;\n } else if (uninstalledWallet.name.includes(\"Metamask\")) {\n parameter = window.location.href;\n } else {\n parameter = encodeURIComponent(window.location.href);\n }\n const location = uninstalledWallet.deeplinkProvider.concat(parameter);\n window.location.href = location;\n return;\n }\n }\n }\n const allDetectedWallets = this._standard_wallets;\n const selectedWallet = allDetectedWallets.find(\n (wallet) => wallet.name === walletName\n );\n if (!selectedWallet) return;\n if (this._connected && this._account) {\n if (this._wallet?.name === walletName)\n throw new WalletConnectionError(\n `${walletName} wallet is already connected`\n ).message;\n }\n await this.connectWallet(selectedWallet, async () => {\n const response = await selectedWallet.features[\"aptos:connect\"].connect();\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return { account: response.args, output: void 0 };\n });\n }\n /**\n * Signs into the wallet by connecting and signing an authentication messages.\n *\n * For more information, visit: https://siwa.aptos.dev\n *\n * @param args\n * @param args.input The AptosSignInInput which defines how the SIWA Message should be constructed\n * @param args.walletName The name of the wallet to sign into\n * @returns The AptosSignInOutput which contains the account and signature information\n */\n async signIn(args) {\n const { input, walletName } = args;\n const allDetectedWallets = this._standard_wallets;\n const selectedWallet = allDetectedWallets.find(\n (wallet) => wallet.name === walletName\n );\n if (!selectedWallet) {\n throw new WalletNotFoundError(`Wallet ${walletName} not found`).message;\n }\n if (!selectedWallet.features[\"aptos:signIn\"]) {\n throw new WalletNotSupportedMethod(\n `aptos:signIn is not supported by ${walletName}`\n ).message;\n }\n return await this.connectWallet(selectedWallet, async () => {\n if (!selectedWallet.features[\"aptos:signIn\"]) {\n throw new WalletNotSupportedMethod(\n `aptos:signIn is not supported by ${selectedWallet.name}`\n ).message;\n }\n const response = await selectedWallet.features[\"aptos:signIn\"].signIn(input);\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return { account: response.args.account, output: response.args };\n });\n }\n /**\n * Connects a wallet to the dapp.\n * On connect success, we set the current account and the network, and keeping the selected wallet\n * name in LocalStorage to support autoConnect function.\n *\n * @param selectedWallet. The wallet we want to connect.\n * @emit emits \"connect\" event\n * @throws WalletConnectionError\n */\n async connectWallet(selectedWallet, onConnect) {\n try {\n this._connecting = true;\n this.setWallet(selectedWallet);\n const { account, output } = await onConnect();\n this.setAccount(account);\n const network = await selectedWallet.features[\"aptos:network\"].network();\n this.setNetwork(network);\n await this.setAnsName();\n setLocalStorage(selectedWallet.name);\n this._connected = true;\n this.recordEvent(\"wallet_connect\");\n this.emit(\"connect\", account);\n return output;\n } catch (error) {\n this.clearData();\n const errMsg = generalizedErrorMessage(error);\n throw new WalletConnectionError(errMsg).message;\n } finally {\n this._connecting = false;\n }\n }\n /**\n * Disconnect the current connected wallet. On success, we clear the\n * current account, current network and LocalStorage data.\n *\n * @emit emits \"disconnect\" event\n * @throws WalletDisconnectionError\n */\n async disconnect() {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:disconnect\"].disconnect();\n this.clearData();\n this.recordEvent(\"wallet_disconnect\");\n this.emit(\"disconnect\");\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletDisconnectionError(errMsg).message;\n }\n }\n /**\n * Signs and submits a transaction to chain\n *\n * @param transactionInput InputTransactionData\n * @returns AptosSignAndSubmitTransactionOutput\n */\n async signAndSubmitTransaction(transactionInput) {\n try {\n if (\"function\" in transactionInput.data) {\n if (transactionInput.data.function === \"0x1::account::rotate_authentication_key_call\") {\n throw new WalletSignAndSubmitMessageError(\"SCAM SITE DETECTED\").message;\n }\n if (transactionInput.data.function === \"0x1::code::publish_package_txn\") {\n ({\n metadataBytes: transactionInput.data.functionArguments[0],\n byteCode: transactionInput.data.functionArguments[1]\n } = handlePublishPackageTransaction(transactionInput));\n }\n }\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_and_submit_transaction\");\n const shouldUseTxnSubmitter = !!(this._dappConfig?.transactionSubmitter || transactionInput.transactionSubmitter);\n if (this._wallet.features[\"aptos:signAndSubmitTransaction\"] && !shouldUseTxnSubmitter) {\n if (this._wallet.features[\"aptos:signAndSubmitTransaction\"].version !== \"1.1.0\") {\n const aptosConfig2 = getAptosConfig(this._network, this._dappConfig);\n const aptos2 = new import_ts_sdk2.Aptos(aptosConfig2);\n const transaction2 = await aptos2.transaction.build.simple({\n sender: this._account.address.toString(),\n data: transactionInput.data,\n options: transactionInput.options\n });\n const signAndSubmitTransactionMethod = this._wallet.features[\"aptos:signAndSubmitTransaction\"].signAndSubmitTransaction;\n const response3 = await signAndSubmitTransactionMethod(\n transaction2\n );\n if (response3.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response3.args;\n }\n const response2 = await this._wallet.features[\"aptos:signAndSubmitTransaction\"].signAndSubmitTransaction({\n payload: transactionInput.data,\n gasUnitPrice: transactionInput.options?.gasUnitPrice,\n maxGasAmount: transactionInput.options?.maxGasAmount\n });\n if (response2.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response2.args;\n }\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new import_ts_sdk2.Aptos(aptosConfig);\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address.toString(),\n data: transactionInput.data,\n options: transactionInput.options,\n withFeePayer: shouldUseTxnSubmitter\n });\n const signTransactionResponse = await this.signTransaction({\n transactionOrPayload: transaction\n });\n const response = await this.submitTransaction({\n transaction,\n senderAuthenticator: signTransactionResponse.authenticator,\n transactionSubmitter: transactionInput.transactionSubmitter,\n pluginParams: transactionInput.pluginParams\n });\n return { hash: response.hash };\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n /**\n * Signs a transaction\n *\n * This method supports 2 input types -\n * 1. A raw transaction that was already built by the dapp,\n * 2. A transaction data input as JSON. This is for the wallet to be able to simulate before signing\n *\n * @param transactionOrPayload AnyRawTransaction | InputTransactionData\n * @param asFeePayer optional. A flag indicates to sign the transaction as the fee payer\n * @param options optional. Transaction options\n *\n * @returns AccountAuthenticator\n */\n async signTransaction(args) {\n const { transactionOrPayload, asFeePayer } = args;\n try {\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_transaction\");\n if (\"rawTransaction\" in transactionOrPayload) {\n const response = await this._wallet?.features[\"aptos:signTransaction\"].signTransaction(\n transactionOrPayload,\n asFeePayer\n );\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return {\n authenticator: response.args,\n rawTransaction: transactionOrPayload.rawTransaction.bcsToBytes()\n };\n } else if (this._wallet.features[\"aptos:signTransaction\"]?.version === \"1.1.0\") {\n const signTransactionV1_1StandardInput = {\n payload: transactionOrPayload.data,\n expirationTimestamp: transactionOrPayload.options?.expirationTimestamp,\n expirationSecondsFromNow: transactionOrPayload.options?.expirationSecondsFromNow,\n gasUnitPrice: transactionOrPayload.options?.gasUnitPrice,\n maxGasAmount: transactionOrPayload.options?.maxGasAmount,\n sequenceNumber: transactionOrPayload.options?.accountSequenceNumber,\n sender: transactionOrPayload.sender ? { address: import_ts_sdk2.AccountAddress.from(transactionOrPayload.sender) } : void 0\n };\n const walletSignTransactionMethod = this._wallet?.features[\"aptos:signTransaction\"].signTransaction;\n const response = await walletSignTransactionMethod(\n signTransactionV1_1StandardInput\n );\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return {\n authenticator: response.args.authenticator,\n rawTransaction: response.args.rawTransaction.bcsToBytes()\n };\n } else {\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new import_ts_sdk2.Aptos(aptosConfig);\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address,\n data: transactionOrPayload.data,\n options: transactionOrPayload.options,\n withFeePayer: transactionOrPayload.withFeePayer\n });\n const response = await this._wallet?.features[\"aptos:signTransaction\"].signTransaction(\n transaction,\n asFeePayer\n );\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return {\n authenticator: response.args,\n rawTransaction: transaction.bcsToBytes()\n };\n }\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignTransactionError(errMsg).message;\n }\n }\n /**\n * Sign a message (doesnt submit to chain).\n *\n * @param message - AptosSignMessageInput\n *\n * @return response from the wallet's signMessage function\n * @throws WalletSignMessageError\n */\n async signMessage(message) {\n try {\n this.ensureWalletExists(this._wallet);\n this.recordEvent(\"sign_message\");\n const response = await this._wallet?.features[\"aptos:signMessage\"]?.signMessage(message);\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response.args;\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageError(errMsg).message;\n }\n }\n /**\n * Submits transaction to chain\n *\n * @param transaction - InputSubmitTransactionData\n * @returns PendingTransactionResponse\n */\n async submitTransaction(transaction) {\n try {\n this.ensureWalletExists(this._wallet);\n const { additionalSignersAuthenticators } = transaction;\n const transactionType = additionalSignersAuthenticators !== void 0 ? \"multi-agent\" : \"simple\";\n this.recordEvent(\"submit_transaction\", {\n transaction_type: transactionType\n });\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new import_ts_sdk2.Aptos(aptosConfig);\n if (additionalSignersAuthenticators !== void 0) {\n const multiAgentTxn = {\n ...transaction,\n additionalSignersAuthenticators\n };\n return aptos.transaction.submit.multiAgent(multiAgentTxn);\n } else {\n return aptos.transaction.submit.simple(transaction);\n }\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSubmitTransactionError(errMsg).message;\n }\n }\n /**\n Event for when account has changed on the wallet\n @return the new account info\n @throws WalletAccountChangeError\n */\n async onAccountChange() {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:onAccountChange\"]?.onAccountChange(\n async (data) => {\n this.setAccount(data);\n await this.setAnsName();\n this.recordEvent(\"account_change\");\n this.emit(\"accountChange\", this._account);\n }\n );\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletAccountChangeError(errMsg).message;\n }\n }\n /**\n Event for when network has changed on the wallet\n @return the new network info\n @throws WalletNetworkChangeError\n */\n async onNetworkChange() {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:onNetworkChange\"]?.onNetworkChange(\n async (data) => {\n this.setNetwork(data);\n await this.setAnsName();\n this.emit(\"networkChange\", this._network);\n }\n );\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletNetworkChangeError(errMsg).message;\n }\n }\n /**\n * Sends a change network request to the wallet to change the connected network\n *\n * @param network - Network\n * @returns AptosChangeNetworkOutput\n */\n async changeNetwork(network) {\n try {\n this.ensureWalletExists(this._wallet);\n this.recordEvent(\"change_network_request\", {\n from: this._network?.name,\n to: network\n });\n const chainId = network === import_ts_sdk2.Network.DEVNET ? await fetchDevnetChainId() : import_ts_sdk2.NetworkToChainId[network];\n const networkInfo = {\n name: network,\n chainId\n };\n if (this._wallet.features[\"aptos:changeNetwork\"]) {\n const response = await this._wallet.features[\"aptos:changeNetwork\"].changeNetwork(\n networkInfo\n );\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response.args;\n }\n throw new WalletChangeNetworkError(\n `${this._wallet.name} does not support changing network request`\n ).message;\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletChangeNetworkError(errMsg).message;\n }\n }\n /**\n * Signs a message and verifies the signer\n * @param message - AptosSignMessageInput\n * @returns boolean\n */\n async signMessageAndVerify(message) {\n try {\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_message_and_verify\");\n const response = await this._wallet.features[\"aptos:signMessage\"].signMessage(message);\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"Failed to sign a message\").message;\n }\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const signingMessage = new TextEncoder().encode(\n response.args.fullMessage\n );\n if (\"verifySignatureAsync\" in this._account.publicKey) {\n return await this._account.publicKey.verifySignatureAsync({\n aptosConfig,\n message: signingMessage,\n signature: response.args.signature,\n options: { throwErrorWithReason: true }\n });\n }\n return this._account.publicKey.verifySignature({\n message: signingMessage,\n signature: response.args.signature\n });\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n};\n\n// src/index.ts\nif (typeof window !== \"undefined\") {\n window.WALLET_ADAPTER_CORE_VERSION = WALLET_ADAPTER_CORE_VERSION;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n APTOS_CONNECT_ACCOUNT_URL,\n APTOS_CONNECT_BASE_URL,\n ChainIdToAnsSupportedNetworkMap,\n NetworkName,\n PETRA_WEB_ACCOUNT_URL,\n PETRA_WEB_BASE_URL,\n WalletCore,\n WalletReadyState,\n aptosStandardSupportedWalletList,\n convertNetwork,\n crossChainStandardSupportedWalletList,\n fetchDevnetChainId,\n generalizedErrorMessage,\n getAptosConfig,\n getAptosConnectWallets,\n getLocalStorage,\n getPetraWebWallets,\n getSDKWallets,\n groupAndSortWallets,\n handlePublishPackageTransaction,\n isAptosConnectWallet,\n isAptosLiveNetwork,\n isAptosNetwork,\n isInAppBrowser,\n isInstallRequired,\n isInstalledOrLoadable,\n isMobile,\n isPetraWebWallet,\n isRedirectable,\n partitionWallets,\n removeLocalStorage,\n setLocalStorage,\n truncateAddress\n});\n","import { AptosSignInBoundFields } from \"@aptos-labs/wallet-standard\";\nimport { WALLET_ADAPTER_CORE_VERSION } from \"./version\";\n\nexport type {\n AptosSignInOutput,\n AptosSignInInput,\n AptosSignInBoundFields,\n} from \"@aptos-labs/wallet-standard\";\n/**\n * @deprecated Use `AptosSignInBoundFields` instead. This will be removed in future versions.\n */\nexport type AptosSignInRequiredFields = AptosSignInBoundFields;\n\nexport * from \"./WalletCore\";\nexport * from \"./constants\";\nexport * from \"./utils\";\nexport * from \"./sdkWallets\";\nexport * from \"./registry\";\n\n// inject adapter core version to the window\nif (typeof window !== \"undefined\") {\n (window as any).WALLET_ADAPTER_CORE_VERSION = WALLET_ADAPTER_CORE_VERSION;\n}\n","export const WALLET_ADAPTER_CORE_VERSION = \"7.9.2\";\n","import EventEmitter from \"eventemitter3\";\nimport {\n AccountAddress,\n AccountAuthenticator,\n AnyRawTransaction,\n Aptos,\n InputSubmitTransactionData,\n Network,\n NetworkToChainId,\n PendingTransactionResponse,\n TransactionSubmitter,\n} from \"@aptos-labs/ts-sdk\";\nimport {\n AptosWallet,\n getAptosWallets,\n isWalletWithRequiredFeatureSet,\n UserResponseStatus,\n AptosSignAndSubmitTransactionOutput,\n UserResponse,\n AptosSignTransactionOutputV1_1,\n AptosSignTransactionInputV1_1,\n AptosSignTransactionMethod,\n AptosSignTransactionMethodV1_1,\n NetworkInfo,\n AccountInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AptosChangeNetworkOutput,\n AptosSignInInput,\n AptosSignInOutput,\n} from \"@aptos-labs/wallet-standard\";\nimport { AptosConnectWalletConfig } from \"@aptos-connect/wallet-adapter-plugin\";\n\nexport type {\n NetworkInfo,\n AccountInfo,\n AptosSignAndSubmitTransactionOutput,\n AptosSignTransactionOutputV1_1,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AptosChangeNetworkOutput,\n} from \"@aptos-labs/wallet-standard\";\nexport type {\n AccountAuthenticator,\n AnyRawTransaction,\n InputGenerateTransactionOptions,\n PendingTransactionResponse,\n InputSubmitTransactionData,\n Network,\n AnyPublicKey,\n AccountAddress,\n TransactionSubmitter,\n} from \"@aptos-labs/ts-sdk\";\n\nimport { GA4 } from \"./ga\";\nimport {\n WalletChangeNetworkError,\n WalletAccountChangeError,\n WalletAccountError,\n WalletConnectionError,\n WalletGetNetworkError,\n WalletNetworkChangeError,\n WalletNotConnectedError,\n WalletNotReadyError,\n WalletNotSelectedError,\n WalletSignAndSubmitMessageError,\n WalletSignMessageError,\n WalletSignTransactionError,\n WalletSignMessageAndVerifyError,\n WalletDisconnectionError,\n WalletSubmitTransactionError,\n WalletNotSupportedMethod,\n WalletNotFoundError,\n} from \"./error\";\nimport { ChainIdToAnsSupportedNetworkMap, WalletReadyState } from \"./constants\";\nimport { WALLET_ADAPTER_CORE_VERSION } from \"./version\";\nimport {\n fetchDevnetChainId,\n generalizedErrorMessage,\n getAptosConfig,\n handlePublishPackageTransaction,\n isAptosNetwork,\n isRedirectable,\n removeLocalStorage,\n setLocalStorage,\n} from \"./utils\";\nimport {\n aptosStandardSupportedWalletList,\n crossChainStandardSupportedWalletList,\n} from \"./registry\";\nimport { getSDKWallets } from \"./sdkWallets\";\nimport {\n AvailableWallets,\n AptosStandardSupportedWallet,\n InputTransactionData,\n} from \"./utils/types\";\n\n// An adapter wallet types is a wallet that is compatible with the wallet standard and the wallet adapter properties\nexport type AdapterWallet = AptosWallet & {\n readyState?: WalletReadyState;\n isAptosNativeWallet?: boolean;\n};\n\n// An adapter not detected wallet types is a wallet that is compatible with the wallet standard but not detected\nexport type AdapterNotDetectedWallet = Omit<\n AdapterWallet,\n \"features\" | \"version\" | \"chains\" | \"accounts\"\n> & {\n readyState: WalletReadyState.NotDetected;\n};\n\nexport interface DappConfig {\n network: Network;\n /**\n * If provided, the wallet adapter will submit transactions using the provided\n * transaction submitter rather than via the wallet.\n */\n transactionSubmitter?: TransactionSubmitter;\n aptosApiKeys?: Partial<Record<Network, string>>;\n aptosConnectDappId?: string;\n aptosConnect?: Omit<AptosConnectWalletConfig, \"network\">;\n /**\n * @deprecated will be removed in a future version\n */\n mizuwallet?: {\n manifestURL: string;\n appId?: string;\n };\n /**\n * @deprecated will be removed in a future version\n */\n msafeWalletConfig?: {\n appId?: string;\n appUrl?: string;\n };\n crossChainWallets?: boolean;\n}\n\nexport declare interface WalletCoreEvents {\n connect(account: AccountInfo | null): void;\n disconnect(): void;\n standardWalletsAdded(wallets: AdapterWallet): void;\n standardNotDetectedWalletAdded(wallets: AdapterNotDetectedWallet): void;\n networkChange(network: NetworkInfo | null): void;\n accountChange(account: AccountInfo | null): void;\n}\n\nexport type AdapterAccountInfo = Omit<AccountInfo, \"ansName\"> & {\n // ansName is a read-only property on the standard AccountInfo type\n ansName?: string;\n};\n\nexport class WalletCore extends EventEmitter<WalletCoreEvents> {\n // Local private variable to hold the wallet that is currently connected\n private _wallet: AdapterWallet | null = null;\n\n // Local private variable to hold SDK wallets in the adapter\n private readonly _sdkWallets: AdapterWallet[] = [];\n\n // Local array that holds all the wallets that are AIP-62 standard compatible\n private _standard_wallets: AdapterWallet[] = [];\n\n // Local array that holds all the wallets that are AIP-62 standard compatible but are not installed on the user machine\n private _standard_not_detected_wallets: AdapterNotDetectedWallet[] = [];\n\n // Local private variable to hold the network that is currently connected\n private _network: NetworkInfo | null = null;\n\n // Local private variable to hold the wallet connected state\n private _connected: boolean = false;\n\n // Local private variable to hold the connecting state\n private _connecting: boolean = false;\n\n // Local private variable to hold the account that is currently connected\n private _account: AdapterAccountInfo | null = null;\n\n // JSON configuration for AptosConnect\n private _dappConfig: DappConfig | undefined;\n\n // Private array that holds all the Wallets a dapp decided to opt-in to\n private _optInWallets: ReadonlyArray<AvailableWallets> = [];\n\n // Local flag to disable the adapter telemetry tool\n private _disableTelemetry: boolean = false;\n\n // Google Analytics 4 module\n private readonly ga4: GA4 | null = null;\n\n constructor(\n optInWallets?: ReadonlyArray<AvailableWallets>,\n dappConfig?: DappConfig,\n disableTelemetry?: boolean,\n ) {\n super();\n this._optInWallets = optInWallets || [];\n this._dappConfig = dappConfig;\n this._disableTelemetry = disableTelemetry ?? false;\n this._sdkWallets = getSDKWallets(this._dappConfig);\n\n // If disableTelemetry set to false (by default), start GA4\n if (!this._disableTelemetry) {\n this.ga4 = new GA4();\n }\n // Strategy to detect AIP-62 standard compatible extension wallets\n this.fetchExtensionAIP62AptosWallets();\n // Strategy to detect AIP-62 standard compatible SDK wallets.\n // We separate the extension and sdk detection process so we dont refetch sdk wallets everytime a new\n // extension wallet is detected\n this.fetchSDKAIP62AptosWallets();\n // Strategy to append not detected AIP-62 standard compatible extension wallets\n this.appendNotDetectedStandardSupportedWallets();\n }\n\n private fetchExtensionAIP62AptosWallets(): void {\n let { aptosWallets, on } = getAptosWallets();\n this.setExtensionAIP62Wallets(aptosWallets);\n\n if (typeof window === \"undefined\") return;\n // Adds an event listener for new wallets that get registered after the dapp has been loaded,\n // receiving an unsubscribe function, which it can later use to remove the listener\n const that = this;\n const removeRegisterListener = on(\"register\", function () {\n let { aptosWallets } = getAptosWallets();\n that.setExtensionAIP62Wallets(aptosWallets);\n });\n\n const removeUnregisterListener = on(\"unregister\", function () {\n let { aptosWallets } = getAptosWallets();\n that.setExtensionAIP62Wallets(aptosWallets);\n });\n }\n\n /**\n * Set AIP-62 extension wallets\n *\n * @param extensionwWallets\n */\n private setExtensionAIP62Wallets(\n extensionwWallets: readonly AptosWallet[],\n ): void {\n extensionwWallets.map((wallet: AdapterWallet) => {\n if (this.excludeWallet(wallet)) {\n return;\n }\n\n // Rimosafe is not supported anymore, so hiding it\n if (wallet.name === \"Rimosafe\") {\n return;\n }\n\n const isValid = isWalletWithRequiredFeatureSet(wallet);\n\n if (isValid) {\n // check if we already have this wallet as a not detected wallet\n const index = this._standard_not_detected_wallets.findIndex(\n (notDetctedWallet) => notDetctedWallet.name == wallet.name,\n );\n // if we do, remove it from the not detected wallets array as it is now become detected\n if (index !== -1) {\n this._standard_not_detected_wallets.splice(index, 1);\n }\n\n // ✅ Check if wallet already exists in _standard_wallets\n const alreadyExists = this._standard_wallets.some(\n (w) => w.name === wallet.name,\n );\n if (!alreadyExists) {\n wallet.readyState = WalletReadyState.Installed;\n wallet.isAptosNativeWallet = this.isAptosNativeWallet(wallet);\n this._standard_wallets.push(wallet);\n this.emit(\"standardWalletsAdded\", wallet);\n }\n }\n });\n }\n\n /**\n * Set AIP-62 SDK wallets\n */\n private fetchSDKAIP62AptosWallets(): void {\n this._sdkWallets.map((wallet: AdapterWallet) => {\n if (this.excludeWallet(wallet)) {\n return;\n }\n const isValid = isWalletWithRequiredFeatureSet(wallet);\n\n if (isValid) {\n wallet.readyState = WalletReadyState.Installed;\n wallet.isAptosNativeWallet = this.isAptosNativeWallet(wallet);\n this._standard_wallets.push(wallet);\n }\n });\n }\n\n // Aptos native wallets do not have an authenticationFunction property\n private isAptosNativeWallet(wallet: AptosWallet): boolean {\n return !(\"authenticationFunction\" in wallet);\n }\n\n // Since we can't discover AIP-62 wallets that are not installed on the user machine,\n // we hold a AIP-62 wallets registry to show on the wallet selector modal for the users.\n // Append wallets from wallet standard support registry to the `_standard_not_detected_wallets` array\n // when wallet is not installed on the user machine\n private appendNotDetectedStandardSupportedWallets(): void {\n const walletRegistry = this._dappConfig?.crossChainWallets\n ? [\n ...aptosStandardSupportedWalletList,\n ...crossChainStandardSupportedWalletList,\n ]\n : aptosStandardSupportedWalletList;\n // Loop over the registry map\n walletRegistry.map((supportedWallet: AptosStandardSupportedWallet) => {\n // Check if we already have this wallet as a detected AIP-62 wallet standard\n const existingStandardWallet = this._standard_wallets.find(\n (wallet) => wallet.name == supportedWallet.name,\n );\n // If it is detected, it means the user has the wallet installed, so dont add it to the wallets array\n if (existingStandardWallet) {\n return;\n }\n // If AIP-62 wallet detected but it is excluded by the dapp, dont add it to the wallets array\n if (this.excludeWallet(supportedWallet)) {\n return;\n }\n // If AIP-62 wallet does not exist, append it to the wallet selector modal\n // as an undetected wallet\n if (!existingStandardWallet) {\n // Aptos native wallets do not have an authenticationFunction property\n supportedWallet.isAptosNativeWallet = !(\n \"authenticationFunction\" in supportedWallet\n );\n this._standard_not_detected_wallets.push(supportedWallet);\n this.emit(\"standardNotDetectedWalletAdded\", supportedWallet);\n }\n });\n }\n\n /**\n * A function that excludes an AIP-62 compatible wallet the dapp doesnt want to include\n *\n * @param wallet AdapterWallet | AdapterNotDetectedWallet\n * @returns boolean\n */\n excludeWallet(wallet: AdapterWallet | AdapterNotDetectedWallet): boolean {\n // If _optInWallets is not empty, and does not include the provided wallet,\n // return true to exclude the wallet, otherwise return false\n if (\n this._optInWallets.length > 0 &&\n !this._optInWallets.includes(wallet.name as AvailableWallets)\n ) {\n return true;\n }\n return false;\n }\n\n private recordEvent(eventName: string, additionalInfo?: object): void {\n this.ga4?.gtag(\"event\", `wallet_adapter_${eventName}`, {\n wallet: this._wallet?.name,\n network: this._network?.name,\n network_url: this._network?.url,\n adapter_core_version: WALLET_ADAPTER_CORE_VERSION,\n send_to: process.env.GAID,\n ...additionalInfo,\n });\n }\n\n /**\n * Helper function to ensure wallet exists\n *\n * @param wallet A wallet\n */\n private ensureWalletExists(\n wallet: AdapterWallet | null,\n ): asserts wallet is AdapterWallet {\n if (!wallet) {\n throw new WalletNotConnectedError().name;\n }\n if (!(wallet.readyState === WalletReadyState.Installed))\n throw new WalletNotReadyError(\"Wallet is not set\").name;\n }\n\n /**\n * Helper function to ensure account exists\n *\n * @param account An account\n */\n private ensureAccountExists(\n account: AccountInfo | null,\n ): asserts account is AccountInfo {\n if (!account) {\n throw new WalletAccountError(\"Account is not set\").name;\n }\n }\n\n /**\n * Queries and sets ANS name for the current connected wallet account\n */\n private async setAnsName(): Promise<void> {\n if (this._network?.chainId && this._account) {\n if (this._account.ansName) return;\n // ANS supports only MAINNET or TESTNET\n if (\n !ChainIdToAnsSupportedNetworkMap[this._network.chainId] ||\n !isAptosNetwork(this._network)\n ) {\n this._account.ansName = undefined;\n return;\n }\n\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new Aptos(aptosConfig);\n try {\n const name = await aptos.ans.getPrimaryName({\n address: this._account.address.toString(),\n });\n this._account.ansName = name;\n } catch (error: any) {\n console.log(`Error setting ANS name ${error}`);\n }\n }\n }\n\n /**\n * Function to cleat wallet adapter data.\n *\n * - Removes current connected wallet state\n * - Removes current connected account state\n * - Removes current connected network state\n * - Removes autoconnect local storage value\n */\n private clearData(): void {\n this._connected = false;\n this.setWallet(null);\n this.setAccount(null);\n this.setNetwork(null);\n removeLocalStorage();\n }\n\n /**\n * Sets the connected wallet\n *\n * @param wallet A wallet\n */\n setWallet(wallet: AptosWallet | null): void {\n this._wallet = wallet;\n }\n\n /**\n * Sets the connected account\n *\n * @param account An account\n */\n setAccount(account: AccountInfo | null): void {\n this._account = account;\n }\n\n /**\n * Sets the connected network\n *\n * @param network A network\n */\n setNetwork(network: NetworkInfo | null): void {\n this._network = network;\n }\n\n /**\n * Helper function to detect whether a wallet is connected\n *\n * @returns boolean\n */\n isConnected(): boolean {\n return this._connected;\n }\n\n /**\n * Getter to fetch all detected wallets\n */\n get wallets(): ReadonlyArray<AptosWallet> {\n return this._standard_wallets;\n }\n\n get notDetectedWallets(): ReadonlyArray<AdapterNotDetectedWallet> {\n return this._standard_not_detected_wallets;\n }\n\n /**\n * Getter for the current connected wallet\n *\n * @return wallet info\n * @throws WalletNotSelectedError\n */\n get wallet(): AptosWallet | null {\n try {\n if (!this._wallet) return null;\n return this._wallet;\n } catch (error: any) {\n throw new WalletNotSelectedError(error).message;\n }\n }\n\n /**\n * Getter for the current connected account\n *\n * @return account info\n * @throws WalletAccountError\n */\n get account(): AccountInfo | null {\n try {\n return this._account;\n } catch (error: any) {\n throw new WalletAccountError(error).message;\n }\n }\n\n /**\n * Getter for the current wallet network\n *\n * @return network info\n * @throws WalletGetNetworkError\n */\n get network(): NetworkInfo | null {\n try {\n return this._network;\n } catch (error: any) {\n throw new WalletGetNetworkError(error).message;\n }\n }\n\n /**\n * Helper function to run some checks before we connect with a wallet.\n *\n * @param walletName. The wallet name we want to connect with.\n */\n async connect(walletName: string): Promise<void | string> {\n // First, handle mobile case\n // Check if we are in a redirectable view (i.e on mobile AND not in an in-app browser)\n if (isRedirectable()) {\n const selectedWallet = this._standard_not_detected_wallets.find(\n (wallet: AdapterNotDetectedWallet) => wallet.name === walletName,\n );\n\n if (selectedWallet) {\n // If wallet has a deeplinkProvider property, use it\n const uninstalledWallet =\n selectedWallet as unknown as AptosStandardSupportedWallet;\n if (uninstalledWallet.deeplinkProvider) {\n let parameter = \"\";\n if (uninstalledWallet.name.includes(\"Phantom\")) {\n // Phantom required parameters https://docs.phantom.com/phantom-deeplinks/other-methods/browse#parameters\n let url = encodeURIComponent(window.location.href);\n let ref = encodeURIComponent(window.location.origin);\n parameter = `${url}?ref=${ref}`;\n } else if (uninstalledWallet.name.includes(\"Metamask\")) {\n // Metamask expects the raw URL as a path parameter\n // Format: https://link.metamask.io/dapp/aptos-labs.github.io\n parameter = window.location.href;\n } else {\n parameter = encodeURIComponent(window.location.href);\n }\n const location = uninstalledWallet.deeplinkProvider.concat(parameter);\n window.location.href = location;\n return;\n }\n }\n }\n\n // Checks the wallet exists in the detected wallets array\n const allDetectedWallets = this._standard_wallets;\n\n const selectedWallet = allDetectedWallets.find(\n (wallet: AdapterWallet) => wallet.name === walletName,\n );\n\n if (!selectedWallet) return;\n\n // Check if wallet is already connected\n if (this._connected && this._account) {\n // if the selected wallet is already connected, we don't need to connect again\n if (this._wallet?.name === walletName)\n throw new WalletConnectionError(\n `${walletName} wallet is already connected`,\n ).message;\n }\n\n await this.connectWallet(selectedWallet, async () => {\n const response = await selectedWallet.features[\"aptos:connect\"].connect();\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return { account: response.args, output: undefined };\n });\n }\n\n /**\n * Signs into the wallet by connecting and signing an authentication messages.\n *\n * For more information, visit: https://siwa.aptos.dev\n *\n * @param args\n * @param args.input The AptosSignInInput which defines how the SIWA Message should be constructed\n * @param args.walletName The name of the wallet to sign into\n * @returns The AptosSignInOutput which contains the account and signature information\n */\n async signIn(args: {\n input: AptosSignInInput;\n walletName: string;\n }): Promise<AptosSignInOutput> {\n const { input, walletName } = args;\n\n const allDetectedWallets = this._standard_wallets;\n const selectedWallet = allDetectedWallets.find(\n (wallet: AdapterWallet) => wallet.name === walletName,\n );\n\n if (!selectedWallet) {\n throw new WalletNotFoundError(`Wallet ${walletName} not found`).message;\n }\n\n if (!selectedWallet.features[\"aptos:signIn\"]) {\n throw new WalletNotSupportedMethod(\n `aptos:signIn is not supported by ${walletName}`,\n ).message;\n }\n\n return await this.connectWallet(selectedWallet, async () => {\n if (!selectedWallet.features[\"aptos:signIn\"]) {\n throw new WalletNotSupportedMethod(\n `aptos:signIn is not supported by ${selectedWallet.name}`,\n ).message;\n }\n\n const response =\n await selectedWallet.features[\"aptos:signIn\"].signIn(input);\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return { account: response.args.account, output: response.args };\n });\n }\n\n /**\n * Connects a wallet to the dapp.\n * On connect success, we set the current account and the network, and keeping the selected wallet\n * name in LocalStorage to support autoConnect function.\n *\n * @param selectedWallet. The wallet we want to connect.\n * @emit emits \"connect\" event\n * @throws WalletConnectionError\n */\n private async connectWallet<T>(\n selectedWallet: AdapterWallet,\n onConnect: () => Promise<{ account: AccountInfo; output: T }>,\n ): Promise<T> {\n try {\n this._connecting = true;\n this.setWallet(selectedWallet);\n const { account, output } = await onConnect();\n this.setAccount(account);\n const network = await selectedWallet.features[\"aptos:network\"].network();\n this.setNetwork(network);\n await this.setAnsName();\n setLocalStorage(selectedWallet.name);\n this._connected = true;\n this.recordEvent(\"wallet_connect\");\n this.emit(\"connect\", account);\n return output;\n } catch (error: any) {\n this.clearData();\n const errMsg = generalizedErrorMessage(error);\n throw new WalletConnectionError(errMsg).message;\n } finally {\n this._connecting = false;\n }\n }\n\n /**\n * Disconnect the current connected wallet. On success, we clear the\n * current account, current network and LocalStorage data.\n *\n * @emit emits \"disconnect\" event\n * @throws WalletDisconnectionError\n */\n async disconnect(): Promise<void> {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:disconnect\"].disconnect();\n this.clearData();\n this.recordEvent(\"wallet_disconnect\");\n this.emit(\"disconnect\");\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletDisconnectionError(errMsg).message;\n }\n }\n\n /**\n * Signs and submits a transaction to chain\n *\n * @param transactionInput InputTransactionData\n * @returns AptosSignAndSubmitTransactionOutput\n */\n async signAndSubmitTransaction(\n transactionInput: InputTransactionData,\n ): Promise<AptosSignAndSubmitTransactionOutput> {\n try {\n if (\"function\" in transactionInput.data) {\n if (\n transactionInput.data.function ===\n \"0x1::account::rotate_authentication_key_call\"\n ) {\n throw new WalletSignAndSubmitMessageError(\"SCAM SITE DETECTED\")\n .message;\n }\n\n if (\n transactionInput.data.function === \"0x1::code::publish_package_txn\"\n ) {\n ({\n metadataBytes: transactionInput.data.functionArguments[0],\n byteCode: transactionInput.data.functionArguments[1],\n } = handlePublishPackageTransaction(transactionInput));\n }\n }\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_and_submit_transaction\");\n\n // We'll submit ourselves if a custom transaction submitter has been provided.\n const shouldUseTxnSubmitter = !!(\n this._dappConfig?.transactionSubmitter ||\n transactionInput.transactionSubmitter\n );\n\n if (\n this._wallet.features[\"aptos:signAndSubmitTransaction\"] &&\n !shouldUseTxnSubmitter\n ) {\n // check for backward compatibility. before version 1.1.0 the standard expected\n // AnyRawTransaction input so the adapter built the transaction before sending it to the wallet\n if (\n this._wallet.features[\"aptos:signAndSubmitTransaction\"].version !==\n \"1.1.0\"\n ) {\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n\n const aptos = new Aptos(aptosConfig);\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address.toString(),\n data: transactionInput.data,\n options: transactionInput.options,\n });\n\n type AptosSignAndSubmitTransactionV1Method = (\n transaction: AnyRawTransaction,\n ) => Promise<UserResponse<AptosSignAndSubmitTransactionOutput>>;\n\n const signAndSubmitTransactionMethod = this._wallet.features[\n \"aptos:signAndSubmitTransaction\"\n ]\n .signAndSubmitTransaction as unknown as AptosSignAndSubmitTransactionV1Method;\n\n const response = (await signAndSubmitTransactionMethod(\n transaction,\n )) as UserResponse<AptosSignAndSubmitTransactionOutput>;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return response.args;\n }\n\n const response = await this._wallet.features[\n \"aptos:signAndSubmitTransaction\"\n ].signAndSubmitTransaction({\n payload: transactionInput.data,\n gasUnitPrice: transactionInput.options?.gasUnitPrice,\n maxGasAmount: transactionInput.options?.maxGasAmount,\n });\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n }\n\n // If wallet does not support signAndSubmitTransaction or a transaction submitter\n // is provided, the adapter will sign and submit it for the dapp.\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new Aptos(aptosConfig);\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address.toString(),\n data: transactionInput.data,\n options: transactionInput.options,\n withFeePayer: shouldUseTxnSubmitter,\n });\n\n const signTransactionResponse = await this.signTransaction({\n transactionOrPayload: transaction,\n });\n const response = await this.submitTransaction({\n transaction,\n senderAuthenticator: signTransactionResponse.authenticator,\n transactionSubmitter: transactionInput.transactionSubmitter,\n pluginParams: transactionInput.pluginParams,\n });\n return { hash: response.hash };\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n * Signs a transaction\n *\n * This method supports 2 input types -\n * 1. A raw transaction that was already built by the dapp,\n * 2. A transaction data input as JSON. This is for the wallet to be able to simulate before signing\n *\n * @param transactionOrPayload AnyRawTransaction | InputTransactionData\n * @param asFeePayer optional. A flag indicates to sign the transaction as the fee payer\n * @param options optional. Transaction options\n *\n * @returns AccountAuthenticator\n */\n async signTransaction(args: {\n transactionOrPayload: AnyRawTransaction | InputTransactionData;\n asFeePayer?: boolean;\n }): Promise<{\n authenticator: AccountAuthenticator;\n rawTransaction: Uint8Array;\n }> {\n const { transactionOrPayload, asFeePayer } = args;\n /**\n * All standard compatible wallets should support AnyRawTransaction for signTransaction version 1.0.0\n * For standard signTransaction version 1.1.0, the standard expects a transaction input\n *\n * So, if the input is AnyRawTransaction, we can directly call the wallet's signTransaction method\n *\n *\n * If the input is InputTransactionData, we need to\n * 1. check if the wallet supports signTransaction version 1.1.0 - if so, we convert the input to the standard expected input\n * 2. if it does not support signTransaction version 1.1.0, we convert it to a rawTransaction input and call the wallet's signTransaction method\n */\n\n try {\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_transaction\");\n\n // dapp sends a generated transaction (i.e AnyRawTransaction), which is supported by the wallet standard at signTransaction version 1.0.0\n if (\"rawTransaction\" in transactionOrPayload) {\n const response = (await this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction(\n transactionOrPayload,\n asFeePayer,\n )) as UserResponse<AccountAuthenticator>;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return {\n authenticator: response.args,\n rawTransaction: transactionOrPayload.rawTransaction.bcsToBytes(),\n };\n } // dapp sends a transaction data input (i.e InputTransactionData), which is supported by the wallet standard at signTransaction version 1.1.0\n else if (\n this._wallet.features[\"aptos:signTransaction\"]?.version === \"1.1.0\"\n ) {\n // convert input to standard expected input\n const signTransactionV1_1StandardInput: AptosSignTransactionInputV1_1 =\n {\n payload: transactionOrPayload.data,\n expirationTimestamp:\n transactionOrPayload.options?.expirationTimestamp,\n expirationSecondsFromNow:\n transactionOrPayload.options?.expirationSecondsFromNow,\n gasUnitPrice: transactionOrPayload.options?.gasUnitPrice,\n maxGasAmount: transactionOrPayload.options?.maxGasAmount,\n sequenceNumber: transactionOrPayload.options?.accountSequenceNumber,\n sender: transactionOrPayload.sender\n ? { address: AccountAddress.from(transactionOrPayload.sender) }\n : undefined,\n };\n\n const walletSignTransactionMethod = this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction as AptosSignTransactionMethod &\n AptosSignTransactionMethodV1_1;\n\n const response = (await walletSignTransactionMethod(\n signTransactionV1_1StandardInput,\n )) as UserResponse<AptosSignTransactionOutputV1_1>;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return {\n authenticator: response.args.authenticator,\n rawTransaction: response.args.rawTransaction.bcsToBytes(),\n };\n } else {\n // dapp input is InputTransactionData but the wallet does not support it, so we convert it to a rawTransaction\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new Aptos(aptosConfig);\n\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address,\n data: transactionOrPayload.data,\n options: transactionOrPayload.options,\n withFeePayer: transactionOrPayload.withFeePayer,\n });\n\n const response = (await this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction(\n transaction,\n asFeePayer,\n )) as UserResponse<AccountAuthenticator>;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return {\n authenticator: response.args,\n rawTransaction: transaction.bcsToBytes(),\n };\n }\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignTransactionError(errMsg).message;\n }\n }\n\n /**\n * Sign a message (doesnt submit to chain).\n *\n * @param message - AptosSignMessageInput\n *\n * @return response from the wallet's signMessage function\n * @throws WalletSignMessageError\n */\n async signMessage(\n message: AptosSignMessageInput,\n ): Promise<AptosSignMessageOutput> {\n try {\n this.ensureWalletExists(this._wallet);\n this.recordEvent(\"sign_message\");\n\n const response =\n await this._wallet?.features[\"aptos:signMessage\"]?.signMessage(message);\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageError(errMsg).message;\n }\n }\n\n /**\n * Submits transaction to chain\n *\n * @param transaction - InputSubmitTransactionData\n * @returns PendingTransactionResponse\n */\n async submitTransaction(\n transaction: InputSubmitTransactionData,\n ): Promise<PendingTransactionResponse> {\n // The standard does not support submitTransaction, so we use the adapter to submit the transaction\n try {\n this.ensureWalletExists(this._wallet);\n\n const { additionalSignersAuthenticators } = transaction;\n const transactionType =\n additionalSignersAuthenticators !== undefined\n ? \"multi-agent\"\n : \"simple\";\n this.recordEvent(\"submit_transaction\", {\n transaction_type: transactionType,\n });\n\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new Aptos(aptosConfig);\n if (additionalSignersAuthenticators !== undefined) {\n const multiAgentTxn = {\n ...transaction,\n additionalSignersAuthenticators,\n };\n return aptos.transaction.submit.multiAgent(multiAgentTxn);\n } else {\n return aptos.transaction.submit.simple(transaction);\n }\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSubmitTransactionError(errMsg).message;\n }\n }\n\n /**\n Event for when account has changed on the wallet\n @return the new account info\n @throws WalletAccountChangeError\n */\n async onAccountChange(): Promise<void> {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:onAccountChange\"]?.onAccountChange(\n async (data: AccountInfo) => {\n this.setAccount(data);\n await this.setAnsName();\n this.recordEvent(\"account_change\");\n this.emit(\"accountChange\", this._account);\n },\n );\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletAccountChangeError(errMsg).message;\n }\n }\n\n /**\n Event for when network has changed on the wallet\n @return the new network info\n @throws WalletNetworkChangeError\n */\n async onNetworkChange(): Promise<void> {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:onNetworkChange\"]?.onNetworkChange(\n async (data: NetworkInfo) => {\n this.setNetwork(data);\n await this.setAnsName();\n this.emit(\"networkChange\", this._network);\n },\n );\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletNetworkChangeError(errMsg).message;\n }\n }\n\n /**\n * Sends a change network request to the wallet to change the connected network\n *\n * @param network - Network\n * @returns AptosChangeNetworkOutput\n */\n async changeNetwork(network: Network): Promise<AptosChangeNetworkOutput> {\n try {\n this.ensureWalletExists(this._wallet);\n this.recordEvent(\"change_network_request\", {\n from: this._network?.name,\n to: network,\n });\n const chainId =\n network === Network.DEVNET\n ? await fetchDevnetChainId()\n : NetworkToChainId[network];\n\n const networkInfo: NetworkInfo = {\n name: network,\n chainId,\n };\n\n if (this._wallet.features[\"aptos:changeNetwork\"]) {\n const response =\n await this._wallet.features[\"aptos:changeNetwork\"].changeNetwork(\n networkInfo,\n );\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n }\n\n throw new WalletChangeNetworkError(\n `${this._wallet.name} does not support changing network request`,\n ).message;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletChangeNetworkError(errMsg).message;\n }\n }\n\n /**\n * Signs a message and verifies the signer\n * @param message - AptosSignMessageInput\n * @returns boolean\n */\n async signMessageAndVerify(message: AptosSignMessageInput): Promise<boolean> {\n try {\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_message_and_verify\");\n\n // sign the message\n const response = (await this._wallet.features[\n \"aptos:signMessage\"\n ].signMessage(message)) as UserResponse<AptosSignMessageOutput>;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"Failed to sign a message\").message;\n }\n\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const signingMessage = new TextEncoder().encode(\n response.args.fullMessage,\n );\n if (\"verifySignatureAsync\" in (this._account.publicKey as Object)) {\n return await this._account.publicKey.verifySignatureAsync({\n aptosConfig,\n message: signingMessage,\n signature: response.args.signature,\n options: { throwErrorWithReason: true },\n });\n }\n return this._account.publicKey.verifySignature({\n message: signingMessage,\n signature: response.args.signature,\n });\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n}\n","export class GA4 {\n readonly aptosGAID: string | undefined = process.env.GAID;\n\n constructor() {\n // Inject Aptos Google Analytics 4 script\n this.injectGA(this.aptosGAID);\n }\n\n gtag(a: string, b: string | object, c?: object) {\n let dataLayer = (window as any).dataLayer || [];\n dataLayer.push(arguments);\n }\n\n private injectGA(gaID?: string) {\n if (typeof window === \"undefined\") return;\n if (!gaID) return;\n\n const head = document.getElementsByTagName(\"head\")[0];\n\n var myScript = document.createElement(\"script\");\n\n myScript.setAttribute(\n \"src\",\n `https://www.googletagmanager.com/gtag/js?id=${gaID}`,\n );\n\n const that = this;\n myScript.onload = function () {\n that.gtag(\"js\", new Date());\n that.gtag(\"config\", `${gaID}`, {\n send_page_view: false,\n });\n };\n\n head.insertBefore(myScript, head.children[1]);\n }\n}\n","export class WalletError extends Error {\n public error: any;\n\n constructor(message?: string, error?: any) {\n super(message);\n this.error = error;\n }\n}\n\nexport class WalletNotSelectedError extends WalletError {\n name = \"WalletNotSelectedError\";\n}\n\nexport class WalletNotReadyError extends WalletError {\n name = \"WalletNotReadyError\";\n}\n\nexport class WalletLoadError extends WalletError {\n name = \"WalletLoadError\";\n}\n\nexport class WalletConfigError extends WalletError {\n name = \"WalletConfigError\";\n}\n\nexport class WalletConnectionError extends WalletError {\n name = \"WalletConnectionError\";\n}\n\nexport class WalletDisconnectedError extends WalletError {\n name = \"WalletDisconnectedError\";\n}\n\nexport class WalletDisconnectionError extends WalletError {\n name = \"WalletDisconnectionError\";\n}\n\nexport class WalletAccountError extends WalletError {\n name = \"WalletAccountError\";\n}\nexport class WalletGetNetworkError extends WalletError {\n name = \"WalletGetNetworkError\";\n}\n\nexport class WalletAccountChangeError extends WalletError {\n name = \"WalletAccountChangeError\";\n}\n\nexport class WalletNetworkChangeError extends WalletError {\n name = \"WalletNetworkChangeError\";\n}\n\nexport class WalletPublicKeyError extends WalletError {\n name = \"WalletPublicKeyError\";\n}\n\nexport class WalletKeypairError extends WalletError {\n name = \"WalletKeypairError\";\n}\n\nexport class WalletNotConnectedError extends WalletError {\n name = \"WalletNotConnectedError\";\n}\n\nexport class WalletSendTransactionError extends WalletError {\n name = \"WalletSendTransactionError\";\n}\n\nexport class WalletSignMessageError extends WalletError {\n name = \"WalletSignMessageError\";\n}\n\nexport class WalletSignMessageAndVerifyError extends WalletError {\n name = \"WalletSignMessageAndVerifyError\";\n}\n\nexport class WalletSignAndSubmitMessageError extends WalletError {\n name = \"WalletSignAndSubmitMessageError\";\n}\n\nexport class WalletSignTransactionError extends WalletError {\n name = \"WalletSignTransactionError\";\n}\n\nexport class WalletTimeoutError extends WalletError {\n name = \"WalletTimeoutError\";\n}\n\nexport class WalletWindowBlockedError extends WalletError {\n name = \"WalletWindowBlockedError\";\n}\n\nexport class WalletWindowClosedError extends WalletError {\n name = \"WalletWindowClosedError\";\n}\n\nexport class WalletResponseError extends WalletError {\n name = \"WalletResponseError\";\n}\n\nexport class WalletNotSupportedMethod extends WalletError {\n name = \"WalletNotSupportedMethod\";\n}\n\nexport class WalletChangeNetworkError extends WalletError {\n name = \"WalletChangeNetworkError\";\n}\n\nexport class WalletSubmitTransactionError extends WalletError {\n name = \"WalletSubmitTransactionError\";\n}\n\nexport class WalletNotFoundError extends WalletError {\n name = \"WalletNotFoundError\";\n}\n","export enum WalletReadyState {\n /**\n * Wallet can only be in one of two states - installed or not installed\n * Installed: wallets are detected by the browser event listeners and means they are installed on the user's browser.\n * NotDetected: wallets are not detected by the browser event listeners and means they are not installed on the user's browser.\n */\n Installed = \"Installed\",\n NotDetected = \"NotDetected\",\n}\n\nexport enum NetworkName {\n Mainnet = \"mainnet\",\n Testnet = \"testnet\",\n Devnet = \"devnet\",\n}\n\nexport const ChainIdToAnsSupportedNetworkMap: Record<string, string> = {\n \"1\": \"mainnet\", // mainnet\n \"2\": \"testnet\", // testnet\n};\n\n/**\n * The base URL for all Aptos Connect wallets.\n *\n * @deprecated Use {@link PETRA_WEB_BASE_URL} instead.\n */\nexport const APTOS_CONNECT_BASE_URL = \"https://aptosconnect.app\";\n\n/** The base URL for all Petra Web wallets. */\nexport const PETRA_WEB_BASE_URL = \"https://web.petra.app\";\n\n/**\n * The URL to the Aptos Connect account page if the user is signed in to Aptos Connect.\n *\n * @deprecated Use {@link PETRA_WEB_ACCOUNT_URL} instead.\n */\nexport const APTOS_CONNECT_ACCOUNT_URL =\n \"https://aptosconnect.app/dashboard/main-account\";\n\n/** The URL to the Petra Web account page if the user is signed in to Petra Web. */\nexport const PETRA_WEB_ACCOUNT_URL =\n \"https://web.petra.app/dashboard/main-account\";\n","import {\n Aptos,\n AptosConfig,\n Hex,\n Network,\n NetworkToNodeAPI,\n PluginSettings,\n} from \"@aptos-labs/ts-sdk\";\nimport {\n NetworkInfo,\n NetworkInfo as StandardNetworkInfo,\n} from \"@aptos-labs/wallet-standard\";\n\nimport { DappConfig } from \"../WalletCore\";\nimport { WalletSignAndSubmitMessageError } from \"../error\";\nimport { InputTransactionData } from \"./types\";\n\nexport function isMobile(): boolean {\n return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(\n navigator.userAgent,\n );\n}\n\nexport function isInAppBrowser(): boolean {\n const isIphone = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(\n navigator.userAgent,\n );\n\n const isAndroid = /(Android).*Version\\/[\\d.]+.*Chrome\\/[^\\s]+ Mobile/i.test(\n navigator.userAgent,\n );\n\n return isIphone || isAndroid;\n}\n\nexport function isRedirectable(): boolean {\n // SSR: return false\n if (typeof navigator === \"undefined\" || !navigator) return false;\n\n // if we are on mobile and NOT in a in-app browser we will redirect to a wallet app\n\n return isMobile() && !isInAppBrowser();\n}\n\nexport function generalizedErrorMessage(error: any): string {\n return typeof error === \"object\" && \"message\" in error\n ? error.message\n : error;\n}\n\n/**\n * Helper function to get AptosConfig that supports Aptos and Custom networks\n *\n * @param networkInfo\n * @param dappConfig\n * @returns AptosConfig\n */\nexport const getAptosConfig = (\n networkInfo: NetworkInfo | null,\n dappConfig: DappConfig | undefined,\n): AptosConfig => {\n if (!networkInfo) {\n throw new Error(\"Undefined network\");\n }\n\n const pluginSettings: PluginSettings = {\n TRANSACTION_SUBMITTER: dappConfig?.transactionSubmitter,\n };\n\n if (isAptosNetwork(networkInfo)) {\n const currentNetwork = convertNetwork(networkInfo);\n\n if (isAptosLiveNetwork(currentNetwork)) {\n const apiKey = dappConfig?.aptosApiKeys;\n return new AptosConfig({\n network: currentNetwork,\n clientConfig: { API_KEY: apiKey ? apiKey[currentNetwork] : undefined },\n pluginSettings,\n });\n }\n\n return new AptosConfig({\n network: currentNetwork,\n pluginSettings,\n });\n }\n\n const knownNetworks = {\n okx: \"https://wallet.okx.com/fullnode/aptos/discover/rpc\",\n };\n\n if (networkInfo.url) {\n const isKnownNetwork = Object.values(knownNetworks).includes(\n networkInfo.url,\n );\n\n if (isKnownNetwork) {\n return new AptosConfig({\n network: Network.CUSTOM,\n fullnode: networkInfo.url,\n pluginSettings,\n });\n }\n }\n\n // Custom networks are not supported, please ensure that the wallet is returning the appropriate network Mainnet, Testnet, Devnet, Local\n throw new Error(\n `Invalid network, network ${networkInfo.name} not supported with Aptos wallet adapter to prevent user from using an unexpected network.`,\n );\n};\n\n/**\n * Helper function to resolve if the current connected network is an Aptos network\n *\n * @param networkInfo\n * @returns boolean\n */\nexport const isAptosNetwork = (\n networkInfo: NetworkInfo | StandardNetworkInfo | null,\n): boolean => {\n if (!networkInfo) {\n throw new Error(\"Undefined network\");\n }\n return NetworkToNodeAPI[networkInfo.name] !== undefined;\n};\n\nexport const isAptosLiveNetwork = (networkInfo: Network): boolean => {\n return (\n networkInfo === \"devnet\" ||\n networkInfo === \"testnet\" ||\n networkInfo === \"mainnet\"\n );\n};\n\n/**\n * Helper function to fetch Devnet chain id\n */\nexport const fetchDevnetChainId = async (): Promise<number> => {\n const aptos = new Aptos(); // default to devnet\n return await aptos.getChainId();\n};\n\n/**\n * A helper function to handle the publish package transaction.\n * The Aptos SDK expects the metadataBytes and byteCode to be Uint8Array, but in case the arguments are passed in\n * as a string, this function converts the string to Uint8Array.\n */\nexport const handlePublishPackageTransaction = (\n transactionInput: InputTransactionData,\n) => {\n // convert the first argument, metadataBytes, to uint8array if is a string\n let metadataBytes = transactionInput.data.functionArguments[0];\n if (typeof metadataBytes === \"string\") {\n metadataBytes = Hex.fromHexInput(metadataBytes).toUint8Array();\n }\n\n // convert the second argument, byteCode, to uint8array if is a string\n let byteCode = transactionInput.data.functionArguments[1];\n if (Array.isArray(byteCode)) {\n byteCode = byteCode.map((byte) => {\n if (typeof byte === \"string\") {\n return Hex.fromHexInput(byte).toUint8Array();\n }\n return byte;\n });\n } else {\n throw new WalletSignAndSubmitMessageError(\n \"The bytecode argument must be an array.\",\n ).message;\n }\n\n return { metadataBytes, byteCode };\n};\n\n// old => new\nexport function convertNetwork(networkInfo: NetworkInfo | null): Network {\n switch (networkInfo?.name) {\n case \"mainnet\" as Network:\n return Network.MAINNET;\n case \"testnet\" as Network:\n return Network.TESTNET;\n case \"devnet\" as Network:\n return Network.DEVNET;\n case \"local\" as Network:\n return Network.LOCAL;\n default:\n throw new Error(\"Invalid Aptos network name\");\n }\n}\n","const LOCAL_STORAGE_ITEM_KEY = \"AptosWalletName\";\n\nexport function setLocalStorage(walletName: string) {\n localStorage.setItem(LOCAL_STORAGE_ITEM_KEY, walletName);\n}\n\nexport function removeLocalStorage() {\n localStorage.removeItem(LOCAL_STORAGE_ITEM_KEY);\n}\n\nexport function getLocalStorage() {\n localStorage.getItem(LOCAL_STORAGE_ITEM_KEY);\n}\n","import { WalletInfo } from \"./types\";\nimport { AdapterNotDetectedWallet, AdapterWallet } from \"../WalletCore\";\nimport {\n APTOS_CONNECT_BASE_URL,\n PETRA_WEB_BASE_URL,\n WalletReadyState,\n} from \"../constants\";\nimport { isRedirectable } from \"./helpers\";\n\n/**\n * A function that will partition the provided wallets into two list — `defaultWallets` and `moreWallets`.\n * By default, the wallets will be partitioned by whether or not they are installed or loadable.\n * You can pass your own partition function if you wish to customize this behavior.\n */\nexport function partitionWallets(\n wallets: ReadonlyArray<AdapterWallet | AdapterNotDetectedWallet>,\n partitionFunction: (\n wallet: AdapterWallet | AdapterNotDetectedWallet,\n ) => boolean = isInstalledOrLoadable,\n) {\n const defaultWallets: Array<AdapterWallet> = [];\n const moreWallets: Array<AdapterNotDetectedWallet> = [];\n\n for (const wallet of wallets) {\n if (partitionFunction(wallet)) defaultWallets.push(wallet as AdapterWallet);\n else moreWallets.push(wallet as AdapterNotDetectedWallet);\n }\n\n return { defaultWallets, moreWallets };\n}\n\n/** Returns true if the wallet is installed or loadable. */\nexport function isInstalledOrLoadable(\n wallet: AdapterWallet | AdapterNotDetectedWallet,\n) {\n return wallet.readyState === WalletReadyState.Installed;\n}\n\n/**\n * Returns true if the user is on desktop and the provided wallet requires installation of a browser extension.\n * This can be used to decide whether to show a \"Connect\" button or \"Install\" link in the UI.\n */\nexport function isInstallRequired(\n wallet: AdapterWallet | AdapterNotDetectedWallet,\n) {\n const isWalletReady = isInstalledOrLoadable(wallet);\n const isMobile = !isWalletReady && isRedirectable();\n\n return !isMobile && !isWalletReady;\n}\n\n/** Truncates the provided wallet address at the middle with an ellipsis. */\nexport function truncateAddress(address: string | undefined) {\n if (!address) return;\n return `${address.slice(0, 6)}...${address.slice(-5)}`;\n}\n\n/**\n * Returns `true` if the provided wallet is an Aptos Connect wallet.\n *\n * @deprecated Use {@link isPetraWebWallet} instead.\n */\nexport function isAptosConnectWallet(wallet: WalletInfo | AdapterWallet) {\n return isPetraWebWallet(wallet);\n}\n\n/** Returns `true` if the provided wallet is a Petra Web wallet. */\nexport function isPetraWebWallet(wallet: WalletInfo | AdapterWallet) {\n if (!wallet.url) return false;\n return (\n wallet.url.startsWith(APTOS_CONNECT_BASE_URL) ||\n wallet.url.startsWith(PETRA_WEB_BASE_URL)\n );\n}\n\n/**\n * Partitions the `wallets` array so that Aptos Connect wallets are grouped separately from the rest.\n * Petra Web is a web wallet that uses social login to create accounts on the blockchain.\n *\n * @deprecated Use {@link getPetraWebWallets} instead.\n */\nexport function getAptosConnectWallets(\n wallets: ReadonlyArray<AdapterWallet | AdapterNotDetectedWallet>,\n) {\n const { defaultWallets, moreWallets } = partitionWallets(\n wallets,\n isAptosConnectWallet,\n );\n return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets };\n}\n\n/**\n * Partitions the `wallets` array so that Petra Web wallets are grouped separately from the rest.\n * Petra Web is a web wallet that uses social login to create accounts on the blockchain.\n */\nexport function getPetraWebWallets(\n wallets: ReadonlyArray<AdapterWallet | AdapterNotDetectedWallet>,\n) {\n const { defaultWallets, moreWallets } = partitionWallets(\n wallets,\n isPetraWebWallet,\n );\n return { petraWebWallets: defaultWallets, otherWallets: moreWallets };\n}\n\nexport interface WalletSortingOptions {\n /**\n * An optional function for sorting Aptos Connect wallets.\n *\n * @deprecated Use {@link sortPetraWebWallets} instead.\n */\n sortAptosConnectWallets?: (a: AdapterWallet, b: AdapterWallet) => number;\n /** An optional function for sorting Petra Web wallets. */\n sortPetraWebWallets?: (a: AdapterWallet, b: AdapterWallet) => number;\n /** An optional function for sorting wallets that are currently installed or loadable. */\n sortAvailableWallets?: (\n a: AdapterWallet | AdapterNotDetectedWallet,\n b: AdapterWallet | AdapterNotDetectedWallet,\n ) => number;\n /** An optional function for sorting wallets that are NOT currently installed or loadable. */\n sortInstallableWallets?: (\n a: AdapterWallet | AdapterNotDetectedWallet,\n b: AdapterWallet | AdapterNotDetectedWallet,\n ) => number;\n}\n\n/**\n * Partitions the `wallets` array into three distinct groups:\n *\n * `aptosConnectWallets` - Use {@link petraWebWallets} instead.\n *\n * `petraWebWallets` - Wallets that use social login to create accounts on\n * the blockchain via Petra Web.\n *\n * `availableWallets` - Wallets that are currently installed or loadable by the client.\n *\n * `installableWallets` - Wallets that are NOT current installed or loadable and\n * require the client to install a browser extension first.\n *\n * Additionally, these wallet groups can be sorted by passing sort functions via the `options` argument.\n */\nexport function groupAndSortWallets(\n wallets: ReadonlyArray<AdapterWallet | AdapterNotDetectedWallet>,\n options?: WalletSortingOptions,\n) {\n const { aptosConnectWallets } = getAptosConnectWallets(wallets);\n const { otherWallets, petraWebWallets } = getPetraWebWallets(wallets);\n const { defaultWallets, moreWallets } = partitionWallets(otherWallets);\n\n if (options?.sortAptosConnectWallets) {\n aptosConnectWallets.sort(options.sortAptosConnectWallets);\n }\n if (options?.sortPetraWebWallets) {\n petraWebWallets.sort(options.sortPetraWebWallets);\n }\n if (options?.sortAvailableWallets) {\n defaultWallets.sort(options.sortAvailableWallets);\n }\n if (options?.sortInstallableWallets) {\n moreWallets.sort(options.sortInstallableWallets);\n }\n\n return {\n /** @deprecated Use {@link petraWebWallets} instead. */\n aptosConnectWallets,\n /** Wallets that use social login to create an account on the blockchain */\n petraWebWallets,\n /** Wallets that are currently installed or loadable. */\n availableWallets: defaultWallets,\n /** Wallets that are NOT currently installed or loadable. */\n installableWallets: moreWallets,\n };\n}\n","import { WalletReadyState } from \"./constants\";\nimport { AptosStandardSupportedWallet } from \"./utils/types\";\n\n/**\n * Registry of AIP-62 wallet standard supported wallets.\n * This list is used to show supported wallets even if they are not installed on the user machine.\n *\n * AIP-62 compatible wallets are required to add their wallet info here if they want to be detected by the adapter\n *\n * @param name - The name of your wallet cast to WalletName (Ex. \"Petra\" as WalletName<\"Petra\">)\n * @param url - The link to your chrome extension or main website where new users can create an account with your wallet.\n * @param icon - An icon for your wallet. Can be one of 4 data types. Be sure to follow the below format exactly (including the literal \",\" after base64).\n * Format: `data:image/${\"svg+xml\" | \"webp\" | \"png\" | \"gif\"};base64,${string}`\n * Note: ${...} data in the above format should be replaced. Other characters are literals (ex. \";\")\n * @param deeplinkProvider optional - An optional deeplink provider for the wallet. If the wallet is not installed, we can redirect the user to the wallet's deeplink provider\n * @example \"https://myWallet.app/explore?link=\"\n */\nexport const aptosStandardSupportedWalletList: Array<AptosStandardSupportedWallet> =\n [\n {\n name: \"OKX Wallet\",\n url: \"https://chromewebstore.google.com/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge\",\n icon: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJDSURBVHgB7Zq9jtpAEMfHlhEgQLiioXEkoAGECwoKxMcTRHmC5E3IoyRPkPAEkI7unJYmTgEFTYwA8a3NTKScLnCHN6c9r1e3P2llWQy7M/s1Gv1twCP0ej37dDq9x+Zut1t3t9vZjDEHIiSRSPg4ZpDL5fxkMvn1cDh8m0wmfugfO53OoFQq/crn8wxfY9EymQyrVCqMfHvScZx1p9ls3pFxXBy/bKlUipGPrVbLuQqAfsCliq3zl0H84zwtjQrOw4Mt1W63P5LvBm2d+Xz+YzqdgkqUy+WgWCy+Mc/nc282m4FqLBYL+3g8fjDxenq72WxANZbLJeA13zDX67UDioL5ybXwafMYu64Ltn3bdDweQ5R97fd7GyhBQMipx4POeEDHIu2LfDdBIGGz+hJ9CQ1ABjoA2egAZPM6AgiCAEQhsi/C4jHyPA/6/f5NG3Ks2+3CYDC4aTccDrn6ojG54MnEvG00GoVmWLIRNZ7wTCwDHYBsdACy0QHIhiuRETxlICWpMMhGZHmqS8qH6JLyGegAZKMDkI0uKf8X4SWlaZo+Pp1bRrwlJU8ZKLIvUjKh0WiQ3sRUbNVq9c5Ebew7KEo2m/1p4jJ4qAmDaqDQBzj5XyiAT4VCQezJigAU+IDU+z8vJFnGWeC+bKQV/5VZ71FV6L7PA3gg3tXrdQ+DgLhC+75Wq3no69P3MC0NFQpx2lL04Ql9gHK1bRDjsSBIvScBnDTk1WrlGIZBorIDEYJj+rhdgnQ67VmWRe0zlplXl81vcyEt0rSoYDUAAAAASUVORK5CYII=\",\n readyState: WalletReadyState.NotDetected,\n isAIP62Standard: true,\n },\n {\n name: \"Petra\",\n url: \"https://chromewebstore.google.com/detail/petra-aptos-wallet/ejjladinnckdgjemekebdpeokbikhfci?hl=en\",\n icon: \"data:image/png;base64,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\",\n readyState: WalletReadyState.NotDetected,\n isAIP62Standard: true,\n deeplinkProvider: \"https://petra.app/explore?link=\",\n },\n {\n name: \"Nightly\",\n url: \"https://nightly.app/\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\",\n readyState: WalletReadyState.NotDetected,\n isAIP62Standard: true,\n deeplinkProvider: \"nightly://v1?network=aptos&url=\",\n },\n {\n name: \"Pontem Wallet\",\n url: \"https://pontem.network/pontem-wallet\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDBDOC4wNzMwNCAwIDAgOC4wNzEzOSAwIDE3Ljk5NjNDMCAyNS4xMjk4IDQuMTczMTYgMzEuMzEwOCAxMC4yMDc2IDM0LjIyMDNWMzQuMjM1MUgxMC4yMzcyQzEyLjU4NiAzNS4zNjQ5IDE1LjIyMjggMzYgMTggMzZDMjcuOTI3IDM2IDM2IDI3LjkyODYgMzYgMTguMDAzN0MzNiA4LjA3MTM4IDI3LjkyNyAwIDE4IDBaTTE4IDEuNDc2OTJDMjcuMTA3MSAxLjQ3NjkyIDM0LjUyMjggOC44OTEwOCAzNC41MjI4IDE3Ljk5NjNDMzQuNTIyOCAyMC42MTA1IDMzLjkwOTcgMjMuMDkxNyAzMi44MjQgMjUuMjkyM0MzMC40NDU2IDI0LjE0MDMgMjguMDMwNCAyMy4yODM3IDI1LjU5MjkgMjIuNzAwM1Y4LjkyMDYyQzI1LjU5MjkgOC40NDA2MiAyNS4yMTYyIDguMDU2NjIgMjQuNzQzNSA4LjA1NjYySDIxLjcxNTJIMTQuMDg1NEgxMS4wNTdDMTAuNTkxNyA4LjA1NjYyIDEwLjIwNzYgOC40NDA2MiAxMC4yMDc2IDguOTIwNjJWMjIuNzY2OEM3Ljg0NDA3IDIzLjM1MDIgNS40OTUyOCAyNC4xOTIgMy4xODM0MiAyNS4yOTk3QzIuMDkwMjcgMjMuMDkxNyAxLjQ3NzIzIDIwLjYxNzggMS40NzcyMyAxNy45OTYzQzEuNDc3MjMgOC44OTEwOCA4Ljg5MjkgMS40NzY5MiAxOCAxLjQ3NjkyWk00LjEzNjIzIDI2Ljk2MTJDNi4wOTM1NiAyNS45OTM4IDguMTI0NzQgMjUuMjQ4IDEwLjIxNSAyNC43MzExVjMyLjU1ODhDNy43NDA2NiAzMS4yMzY5IDUuNjUwMzkgMjkuMzAyMiA0LjEzNjIzIDI2Ljk2MTJaTTE0LjA4NTQgMzQuMDQzMVYxNS42MDM3QzE0LjA4NTQgMTMuNDY5NSAxNS44MzU5IDExLjcwNDYgMTcuOTI2MSAxMS43MDQ2QzIwLjAxNjQgMTEuNzA0NiAyMS43MTUyIDEzLjQzMjYgMjEuNzE1MiAxNS41NTk0QzIxLjcxNTIgMTUuNTc0MiAyMS43MDc4IDE1LjU4ODkgMjEuNzA3OCAxNS42MDM3SDIxLjcxNTJWMjIuMDIwOUMxOS45MzUyIDIxLjgxNDIgMTguMTQ3NyAyMS43NDc3IDE2LjM2MDMgMjEuODQzN0wxNC44OTA0IDIzLjk3NzhDMTcuMTgwMSAyMy43ODU4IDE5LjQxMDcgMjMuODAwNiAyMS42MTE4IDI0LjA1MTdDMjEuNjM0IDI0LjA1MTcgMjEuNjQ4NyAyNC4wNTE3IDIxLjY3MDkgMjQuMDU5MUMyMS42ODU3IDI0LjA1OTEgMjEuNzAwNSAyNC4wNTkxIDIxLjcyMjYgMjQuMDY2NUMyMi4xMDY3IDI0LjExMDggMjMuNTAyNyAyNC4yODggMjQuNzgwNSAyNC42MDU1TDIxLjcyMjYgMjUuNjQ2OFYzNC4xMDIyQzIwLjUyNjEgMzQuMzc1NCAxOS4yODUyIDM0LjUzMDUgMTguMDE0OCAzNC41MzA1QzE2LjY0ODMgMzQuNTE1NyAxNS4zNDEgMzQuMzQ1OCAxNC4wODU0IDM0LjA0MzFaTTI1LjU4NTYgMzIuNjYyMlYyNC43NjhDMjcuNjY4NCAyNS4yOTIzIDI5LjcyOTIgMjYuMDYwMyAzMS43OTczIDI3LjA2NDZDMzAuMjQ2MiAyOS40MjAzIDI4LjEwNDIgMzEuMzU1MSAyNS41ODU2IDMyLjY2MjJaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjIyXzE2NzApIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjIyXzE2NzAiIHgxPSIxNy45OTk3IiB5MT0iMzYuNzc4OSIgeDI9IjE3Ljk5OTciIHkyPSItNS41MTk3OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMDg1OCIgc3RvcC1jb2xvcj0iIzhEMjlDMSIvPgo8c3RvcCBvZmZzZXQ9IjAuMjM4MyIgc3RvcC1jb2xvcj0iIzk0MkJCQiIvPgo8c3RvcCBvZmZzZXQ9IjAuNDY2NyIgc3RvcC1jb2xvcj0iI0E5MkZBQyIvPgo8c3RvcCBvZmZzZXQ9IjAuNzQxMyIgc3RvcC1jb2xvcj0iI0NBMzc5MyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGMDNGNzciLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K\",\n readyState: WalletReadyState.NotDetected,\n isAIP62Standard: true,\n },\n {\n name: \"Backpack\",\n url: \"https://chromewebstore.google.com/detail/backpack/aflkmfhebedbjioipglgcbcmnbpgliof\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxyZWN0IHg9IjEwIiB3aWR0aD0iNDQiIGhlaWdodD0iNjQiIGZpbGw9InVybCgjcGF0dGVybjBfMTdfNCkiLz4KPGRlZnM+CjxwYXR0ZXJuIGlkPSJwYXR0ZXJuMF8xN180IiBwYXR0ZXJuQ29udGVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+Cjx1c2UgeGxpbms6aHJlZj0iI2ltYWdlMF8xN180IiB0cmFuc2Zvcm09InNjYWxlKDAuMDE4MTgxOCAwLjAxMjUpIi8+CjwvcGF0dGVybj4KPGltYWdlIGlkPSJpbWFnZTBfMTdfNCIgd2lkdGg9IjU1IiBoZWlnaHQ9IjgwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURjQUFBQlFDQVlBQUFDOUt1MmtBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBUWpTVVJCVkhnQjdadlJjZHRHRUliL1BkTFBvUjh6SThsVUJXWUY1TG1DT0JWWXFzQmhCWllyaUZPQjVRcXNWT0FqWFlDWkNrUmJtc2xqK0I0U20xMlFZaUNKU2tqY3dpSXc5ODF3UUkxQTRIN2NZZkh2M29GUUFaZmVkOXBBanhib3dmRnpCanBZZnRZdzA4UXh2bklMa3prd09RNWhCbU1JaGx4NTc2WFZiOEFpNm82WUxWcHl3Um45ZnZRNW5NTUlFM0VxaXBqZk02T0xTS1JCMDh6UjhDaUVDMFRpRU1sVnYvOEdHWCt5RUtiSUVPNVN4aC96NDBZUzFYUExCdEFaS2lKakdqNzdITjZoSktYRlNkRG90ak8rUkxYTTVvNk95d2FiTmtvaVArenF5VUUwbFNzMGtXSDVsUml6ckFWdHlJeVFiM1cvNlVQSG1PUGZvYXpEMFMzUVlaSkFSSGdPRFVqTXZSYmc1WHYwL1pkSUpLckgxS0hjNVUrSnFMb3RCbzdDaVdjU0xHWS9oakJGUlVTTDIrQWplMWcrMEhleFh4SjFNZEV0WlRTeThwdWx4S21nSnd1Y3NPT2ZSSWhIVlJDQytNMFBUMW9JWlhwNEozRUZZK3p4blNIQ09STjlPQXdoYlAyYmJYYkszWWdZNDhjUWRRL0pIdHBFdzIxNjhuK05zL2pIMTduTjJnZGhDdVBsWE5xempiRitzT2Z5UU1IOGNXOUViVUo2Y1U1MCtsRGcyU2h1SmV6VEt1bTBhWWQ0VU4weTg3MnNQTzdBRWxtSlhtd1N1SEZZbWdtVEU1T2tMZUxzbng2TXdyRitEc2VqcCtyMDJkR3BCSWtwWXBGMmFudTFRKzZmL2c3Zit2MWZDZlFMSWxGUkIxdmtZbGQ5ZnlZdGpFNU1HZnp1YUR3ZTNtcEQ4WTl2M3A5SUZ2d2VrVWp4NTNTWFdvalZlZUhvUmZGUmNXdFlPbzYvZ25LOTN1NWE1SkY2aWV4UHZ5RVN2VURGNGJrV3AxY3Z0ZzZpeFozRGNUaERDZVlPWjFnbHVHWFJoTGVkWVgxTHJjV1o5QnFYdi9yTGFCZmZlOUtJMXpmZmNuRnFxMHlxVitJQkVRRTVrM0pDSjdlSldJbVQyc2NyR0hBUXdnUVIvQTJEUjRPUzRhVnVWc09TUGZZQXU1STY1NTFGMTk3M09PTXZNRUFmMWpFTnpKMVJ4bi9CZ0xZWUJaY3RiQ3JGK1FFUjUycGlmMTlrc1lCM1lvSE1Ebmd6MXN0aWRlOHJVdi9zdVZVQjFPcVFyMjdxSnJ1aU9hT1k2aE1ZUWNRL1NFQmhPNGN1WVhqTzVXeFVtdzNzVndHdDVUZ3h5VjFZSXZuZjlXQ3dVMFB6L1kzelJobmlIYm9lK0VzWkRsMFlvMWFzSlViMnY4b0JWZFprOVB4MDFSOHdxbVExWTBvdFRIVlNaS0dKcWtTeXlpdG5ldXJLeFQwaTBUT3IrMHdTVjFlU3VMcVN4TldWSks2dUpIRjFKWW1ySzFwbUNHZ2lSQmRPWnlaTjVzbjJDWmtYYkJPRzZ5bXNteEowM2RIRk83R1Y3MFFpa2JoSEhpMTFOUTRSblZndG4zOVVTTmRiYzlDVkRXUzFOR1Avb0xkYVR2ZG9JQ1NUTXVvdDdhYXc5b2g4S1Q4YVRCSlhWNUs0dXBMRTFaVWtycTQwWHB6NSs5bjdncE5VcDVIaWRLbUdrOXlua2VLWVNNU0Iva0FEa1pSbjZzamhIQTBreTJpMExETU1CbDhzWDIxNWJQUitPeGlQanZOSGdaVFVmMjVNU1YxcUtMcm1iUG0xZ0w1YmdBeGVoRDZUZjNTcldQQm16RXlqUFM5ZnVwOHc0ZGJMZy84QUhSZXNCMHpiQzQ0QUFBQUFTVVZPUks1Q1lJST0iLz4KPC9kZWZzPgo8L3N2Zz4K\",\n readyState: WalletReadyState.NotDetected,\n isAIP62Standard: true,\n deeplinkProvider: \"https://backpack.app/ul/v1?url=\",\n },\n {\n name: \"Bitget Wallet\",\n url: \"https://web3.bitget.com\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSIjMDAxRjI5Ii8+CjxwYXRoIGQ9Ik0yMTkuOTQ4IDk1LjcwMjJDMjAxLjYyMyA5NS42OTI5IDE4My4zMyA5NS42ODM1IDE2NC45NDEgOTUuNzExNkMxNTMuODIyIDk1LjcxMTYgMTQ5LjY1MSAxMDkuNjcxIDE1Ny45MjEgMTE3LjkzOUwyODMuMDk4IDI0My4xMTdDMjg3LjAwNCAyNDYuNjkgMjg5LjQ0MSAyNTAuNTc0IDI4OS41MyAyNTUuNjkzQzI4OS40NDEgMjYwLjgxMiAyODcuMDA0IDI2NC42OTYgMjgzLjA5OCAyNjguMjY5TDE1Ny45MjEgMzkzLjQ0NkMxNDkuNjUxIDQwMS43MTUgMTUzLjgyMiA0MTUuNjc0IDE2NC45NDEgNDE1LjY3NEMxODMuMzMgNDE1LjcwMiAyMDEuNjIzIDQxNS42OTMgMjE5Ljk0OCA0MTUuNjgzQzIyOS4xMjIgNDE1LjY3OSAyMzguMzA1IDQxNS42NzQgMjQ3LjUxMSA0MTUuNjc0QzI1OS41NTUgNDE1LjY3NCAyNjYuNzIgNDA5LjI0IDI3My4xNTQgNDAyLjgwNUwzODYuMDQ3IDI4OS45MTJDMzk1LjA1NyAyODAuOTAyIDQwMy4xMTkgMjY4LjkzOSA0MDMuMDA5IDI1NS42OTNDNDAzLjExOSAyNDIuNDQ3IDM5NS4wNTcgMjMwLjQ4NCAzODYuMDQ3IDIyMS40NzRMMjczLjE1NCAxMDguNThDMjY2LjcyIDEwMi4xNDYgMjU5LjU1NSA5NS43MTE2IDI0Ny41MTEgOTUuNzExNkMyMzguMzA1IDk1LjcxMTYgMjI5LjEyMiA5NS43MDY5IDIxOS45NDggOTUuNzAyMloiIGZpbGw9IiMwMEYwRkYiLz4KPC9zdmc+Cg==\",\n readyState: WalletReadyState.NotDetected,\n isAIP62Standard: true,\n },\n {\n name: \"Gate Wallet\",\n url: \"https://www.gate.com/zh/web3/\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNjAwcHgiIGhlaWdodD0iNjAwcHgiIHZpZXdCb3g9IjAgMCA2MDAgNjAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPHRpdGxlPue8lue7hCA3PC90aXRsZT4KICAgIDxkZWZzPgogICAgICAgIDxwb2x5Z29uIGlkPSJwYXRoLTEiIHBvaW50cz0iMCAwIDYwMCAwIDYwMCA2MDAgMCA2MDAiPjwvcG9seWdvbj4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSLmjaLoibIiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJTVkciIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNzU1LjAwMDAwMCwgLTU1MTguMDAwMDAwKSI+CiAgICAgICAgICAgIDxnIGlkPSLnvJbnu4QtNyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTc1NS4wMDAwMDAsIDU1MTguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0i57yW57uEIj4KICAgICAgICAgICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgPC9tYXNrPgogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJDbGlwLTIiPjwvZz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzAwLDQ2NC45OTg0MjcgQzIwOC44NzMwNjksNDY0Ljk5ODQyNyAxMzQuOTk2NTA0LDM5MS4xMjI1NjYgMTM0Ljk5NjUwNCwyOTkuOTk2NTA0IEMxMzQuOTk2NTA0LDIwOC44NzA0NDIgMjA4Ljg3MzA2OSwxMzUuMDAwOTM4IDMwMCwxMzUuMDAwOTM4IEwzMDAsLTAuMDAwNjM1NjAwNjI0IEMxMzQuMzEwMDQ5LC0wLjAwMDYzNTYwMDYyNCAwLDEzNC4zMTQ0ODkgMCwyOTkuOTk2NTA0IEMwLDQ2NS42Nzg1MiAxMzQuMzEwMDQ5LDYwMCAzMDAsNjAwIEM0NjUuNjg5OTUxLDYwMCA2MDAsNDY1LjY3ODUyIDYwMCwyOTkuOTk2NTA0IEw0NjUuMDAzNDk2LDI5OS45OTY1MDQgQzQ2NS4wMDM0OTYsMzkxLjEyMjU2NiAzOTEuMTI2OTMxLDQ2NC45OTg0MjcgMzAwLDQ2NC45OTg0MjciIGlkPSJGaWxsLTEiIGZpbGw9IiMyMzU0RTYiIG1hc2s9InVybCgjbWFzay0yKSI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IkZpbGwtMyIgZmlsbD0iIzE3RTZBMSIgcG9pbnRzPSIyOTkuOTkyMzczIDI5OS45OTcxNCA0NjQuOTk1ODY5IDI5OS45OTcxNCA0NjQuOTk1ODY5IDEzNC45OTUyMTcgMjk5Ljk5MjM3MyAxMzQuOTk1MjE3Ij48L3BvbHlnb24+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==\",\n readyState: WalletReadyState.NotDetected,\n isAIP62Standard: true,\n },\n {\n name: \"Cosmostation Wallet\",\n url: \"https://www.cosmostation.io/\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgdmlld0JveD0iMCAwIDEyOCAxMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0wIDQwQzAgMTcuOTA4NiAxNy45MDg2IDAgNDAgMEg4OEMxMTAuMDkxIDAgMTI4IDE3LjkwODYgMTI4IDQwVjg4QzEyOCAxMTAuMDkxIDExMC4wOTEgMTI4IDg4IDEyOEg0MEMxNy45MDg2IDEyOCAwIDExMC4wOTEgMCA4OFY0MFoiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl85MDg4XzE0OTgxKSIvPgo8cGF0aCBkPSJNNTEuMDI1MyA4Ni4xNTkxTDM1Ljg2NiA1OS45MDI1QzM1LjQ4ODEgNTkuMjQ3OSAzNS4yODkxIDU4LjUwNTUgMzUuMjg5MSA1Ny43NDk3QzM1LjI4OTEgNTYuOTkzOSAzNS40ODgxIDU2LjI1MTQgMzUuODY2IDU1LjU5NjlMNTEuMDI1MyAyOS4zNTNDNTEuNDAzMiAyOC42OTg0IDUxLjk0NjggMjguMTU0OSA1Mi42MDE0IDI3Ljc3N0M1My4yNTU5IDI3LjM5OTEgNTMuOTk4NSAyNy4yMDAyIDU0Ljc1NDMgMjcuMjAwMkg4NS4wNjAyQzg1LjgxNjEgMjcuMjAwMiA4Ni41NTg2IDI3LjM5OTEgODcuMjEzMiAyNy43NzdDODcuODY3OCAyOC4xNTQ5IDg4LjQxMTMgMjguNjk4NCA4OC43ODkyIDI5LjM1M0wxMDQgNTUuNjIyNEw5Ni41NDE5IDU5LjkyODFMODIuNjI1NSAzNS44MzcxSDU3LjI0MDNMNDQuNTY2OSA1Ny43NzUyTDU4LjQ4MzMgODEuODc5TDUxLjAyNTMgODYuMTU5MVoiIGZpbGw9IiM5QzZDRkYiLz4KPHBhdGggZD0iTTczLjI0NTYgMTAwLjQ0OEg0Mi44NzU1QzQyLjExOTcgMTAwLjQ0OCA0MS4zNzcyIDEwMC4yNDkgNDAuNzIyNiA5OS44NzExQzQwLjA2ODEgOTkuNDkzMiAzOS41MjQ1IDk4Ljk0OTYgMzkuMTQ2NiA5OC4yOTUxTDI0IDcyLjA2NDFMMzEuNDQ1MSA2Ny43NTg1TDQ1LjM2MTUgOTEuODYyM0g3MC42ODI3TDgzLjM0MzMgNjkuOTExM0w2OS40Mzk3IDQ1LjgyMDNMNzYuODg0OSA0MS41MTQ2TDkyLjA0NDIgNjcuNzU4NUM5Mi40MjIxIDY4LjQxMyA5Mi42MjExIDY5LjE1NTUgOTIuNjIxMSA2OS45MTEzQzkyLjYyMTEgNzAuNjY3MSA5Mi40MjIxIDcxLjQwOTYgOTIuMDQ0MiA3Mi4wNjQxTDc2Ljg4NDkgOTguMzIwN0M3Ni41MTM0IDk4Ljk1OTIgNzUuOTgzIDk5LjQ5MDYgNzUuMzQ1MyA5OS44NjM0Qzc0LjcwNzUgMTAwLjIzNiA3My45ODQyIDEwMC40MzggNzMuMjQ1NiAxMDAuNDQ4WiIgZmlsbD0iIzA1RDJERCIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzkwODhfMTQ5ODEiIHgxPSI2NCIgeTE9IjAiIHgyPSI2NCIgeTI9IjEyOCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjEyMTIxIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzE3MTcxNyIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=\",\n readyState: WalletReadyState.NotDetected,\n isAIP62Standard: true,\n },\n ];\n\nexport const crossChainStandardSupportedWalletList: Array<AptosStandardSupportedWallet> =\n [\n {\n name: \"Phantom (Solana)\",\n url: \"https://phantom.com/\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA4IiBoZWlnaHQ9IjEwOCIgdmlld0JveD0iMCAwIDEwOCAxMDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiByeD0iMjYiIGZpbGw9IiNBQjlGRjIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00Ni41MjY3IDY5LjkyMjlDNDIuMDA1NCA3Ni44NTA5IDM0LjQyOTIgODUuNjE4MiAyNC4zNDggODUuNjE4MkMxOS41ODI0IDg1LjYxODIgMTUgODMuNjU2MyAxNSA3NS4xMzQyQzE1IDUzLjQzMDUgNDQuNjMyNiAxOS44MzI3IDcyLjEyNjggMTkuODMyN0M4Ny43NjggMTkuODMyNyA5NCAzMC42ODQ2IDk0IDQzLjAwNzlDOTQgNTguODI1OCA4My43MzU1IDc2LjkxMjIgNzMuNTMyMSA3Ni45MTIyQzcwLjI5MzkgNzYuOTEyMiA2OC43MDUzIDc1LjEzNDIgNjguNzA1MyA3Mi4zMTRDNjguNzA1MyA3MS41NzgzIDY4LjgyNzUgNzAuNzgxMiA2OS4wNzE5IDY5LjkyMjlDNjUuNTg5MyA3NS44Njk5IDU4Ljg2ODUgODEuMzg3OCA1Mi41NzU0IDgxLjM4NzhDNDcuOTkzIDgxLjM4NzggNDUuNjcxMyA3OC41MDYzIDQ1LjY3MTMgNzQuNDU5OEM0NS42NzEzIDcyLjk4ODQgNDUuOTc2OCA3MS40NTU2IDQ2LjUyNjcgNjkuOTIyOVpNODMuNjc2MSA0Mi41Nzk0QzgzLjY3NjEgNDYuMTcwNCA4MS41NTc1IDQ3Ljk2NTggNzkuMTg3NSA0Ny45NjU4Qzc2Ljc4MTYgNDcuOTY1OCA3NC42OTg5IDQ2LjE3MDQgNzQuNjk4OSA0Mi41Nzk0Qzc0LjY5ODkgMzguOTg4NSA3Ni43ODE2IDM3LjE5MzEgNzkuMTg3NSAzNy4xOTMxQzgxLjU1NzUgMzcuMTkzMSA4My42NzYxIDM4Ljk4ODUgODMuNjc2MSA0Mi41Nzk0Wk03MC4yMTAzIDQyLjU3OTVDNzAuMjEwMyA0Ni4xNzA0IDY4LjA5MTYgNDcuOTY1OCA2NS43MjE2IDQ3Ljk2NThDNjMuMzE1NyA0Ny45NjU4IDYxLjIzMyA0Ni4xNzA0IDYxLjIzMyA0Mi41Nzk1QzYxLjIzMyAzOC45ODg1IDYzLjMxNTcgMzcuMTkzMSA2NS43MjE2IDM3LjE5MzFDNjguMDkxNiAzNy4xOTMxIDcwLjIxMDMgMzguOTg4NSA3MC4yMTAzIDQyLjU3OTVaIiBmaWxsPSIjRkZGREY4Ii8+Cjwvc3ZnPgo=\",\n readyState: WalletReadyState.NotDetected,\n isAIP62Standard: true,\n deeplinkProvider: `https://phantom.app/ul/browse/`,\n },\n {\n name: \"Phantom (Ethereum)\",\n url: \"https://phantom.com/\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA4IiBoZWlnaHQ9IjEwOCIgdmlld0JveD0iMCAwIDEwOCAxMDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiByeD0iMjYiIGZpbGw9IiNBQjlGRjIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00Ni41MjY3IDY5LjkyMjlDNDIuMDA1NCA3Ni44NTA5IDM0LjQyOTIgODUuNjE4MiAyNC4zNDggODUuNjE4MkMxOS41ODI0IDg1LjYxODIgMTUgODMuNjU2MyAxNSA3NS4xMzQyQzE1IDUzLjQzMDUgNDQuNjMyNiAxOS44MzI3IDcyLjEyNjggMTkuODMyN0M4Ny43NjggMTkuODMyNyA5NCAzMC42ODQ2IDk0IDQzLjAwNzlDOTQgNTguODI1OCA4My43MzU1IDc2LjkxMjIgNzMuNTMyMSA3Ni45MTIyQzcwLjI5MzkgNzYuOTEyMiA2OC43MDUzIDc1LjEzNDIgNjguNzA1MyA3Mi4zMTRDNjguNzA1MyA3MS41NzgzIDY4LjgyNzUgNzAuNzgxMiA2OS4wNzE5IDY5LjkyMjlDNjUuNTg5MyA3NS44Njk5IDU4Ljg2ODUgODEuMzg3OCA1Mi41NzU0IDgxLjM4NzhDNDcuOTkzIDgxLjM4NzggNDUuNjcxMyA3OC41MDYzIDQ1LjY3MTMgNzQuNDU5OEM0NS42NzEzIDcyLjk4ODQgNDUuOTc2OCA3MS40NTU2IDQ2LjUyNjcgNjkuOTIyOVpNODMuNjc2MSA0Mi41Nzk0QzgzLjY3NjEgNDYuMTcwNCA4MS41NTc1IDQ3Ljk2NTggNzkuMTg3NSA0Ny45NjU4Qzc2Ljc4MTYgNDcuOTY1OCA3NC42OTg5IDQ2LjE3MDQgNzQuNjk4OSA0Mi41Nzk0Qzc0LjY5ODkgMzguOTg4NSA3Ni43ODE2IDM3LjE5MzEgNzkuMTg3NSAzNy4xOTMxQzgxLjU1NzUgMzcuMTkzMSA4My42NzYxIDM4Ljk4ODUgODMuNjc2MSA0Mi41Nzk0Wk03MC4yMTAzIDQyLjU3OTVDNzAuMjEwMyA0Ni4xNzA0IDY4LjA5MTYgNDcuOTY1OCA2NS43MjE2IDQ3Ljk2NThDNjMuMzE1NyA0Ny45NjU4IDYxLjIzMyA0Ni4xNzA0IDYxLjIzMyA0Mi41Nzk1QzYxLjIzMyAzOC45ODg1IDYzLjMxNTcgMzcuMTkzMSA2NS43MjE2IDM3LjE5MzFDNjguMDkxNiAzNy4xOTMxIDcwLjIxMDMgMzguOTg4NSA3MC4yMTAzIDQyLjU3OTVaIiBmaWxsPSIjRkZGREY4Ii8+Cjwvc3ZnPgo=\",\n readyState: WalletReadyState.NotDetected,\n isAIP62Standard: true,\n deeplinkProvider: `https://phantom.app/ul/browse/`,\n },\n {\n name: \"Nightly (Solana)\",\n url: \"https://nightly.app/\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\",\n readyState: WalletReadyState.NotDetected,\n isAIP62Standard: true,\n deeplinkProvider: \"nightly://v1?network=aptos&url=\",\n },\n {\n name: \"Nightly (Ethereum)\",\n url: \"https://nightly.app/\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\",\n readyState: WalletReadyState.NotDetected,\n isAIP62Standard: true,\n deeplinkProvider: \"nightly://v1?network=aptos&url=\",\n },\n {\n name: \"Metamask (Solana)\",\n url: \"https://metamask.io/\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiB2aWV3Qm94PSIwIDAgMjU2IDI0MCI+PHBhdGggZmlsbD0iI0UxNzcyNiIgZD0iTTI1MC4wNjYgMEwxNDAuMjE5IDgxLjI3OWwyMC40MjctNDcuOXoiLz48cGF0aCBmaWxsPSIjRTI3NjI1IiBkPSJtNi4xOTEuMDk2bDg5LjE4MSAzMy4yODlsMTkuMzk2IDQ4LjUyOHpNMjA1Ljg2IDE3Mi44NThsNDguNTUxLjkyNGwtMTYuOTY4IDU3LjY0MmwtNTkuMjQzLTE2LjMxMXptLTE1NS43MjEgMGwyNy41NTcgNDIuMjU1bC01OS4xNDMgMTYuMzEybC0xNi44NjUtNTcuNjQzeiIvPjxwYXRoIGZpbGw9IiNFMjc2MjUiIGQ9Im0xMTIuMTMxIDY5LjU1MmwxLjk4NCA2NC4wODNsLTU5LjM3MS0yLjcwMWwxNi44ODgtMjUuNDc4bC4yMTQtLjI0NXptMzEuMTIzLS43MTVsNDAuOSAzNi4zNzZsLjIxMi4yNDRsMTYuODg4IDI1LjQ3OGwtNTkuMzU4IDIuN3pNNzkuNDM1IDE3My4wNDRsMzIuNDE4IDI1LjI1OWwtMzcuNjU4IDE4LjE4MXptOTcuMTM2LS4wMDRsNS4xMzEgNDMuNDQ1bC0zNy41NTMtMTguMTg0eiIvPjxwYXRoIGZpbGw9IiNENUJGQjIiIGQ9Im0xNDQuOTc4IDE5NS45MjJsMzguMTA3IDE4LjQ1MmwtMzUuNDQ3IDE2Ljg0NmwuMzY4LTExLjEzNHptLTMzLjk2Ny4wMDhsLTIuOTA5IDIzLjk3NGwuMjM5IDExLjMwM2wtMzUuNTMtMTYuODMzeiIvPjxwYXRoIGZpbGw9IiMyMzM0NDciIGQ9Im0xMDAuMDA3IDE0MS45OTlsOS45NTggMjAuOTI4bC0zMy45MDMtOS45MzJ6bTU1Ljk4NS4wMDJsMjQuMDU4IDEwLjk5NGwtMzQuMDE0IDkuOTI5eiIvPjxwYXRoIGZpbGw9IiNDQzYyMjgiIGQ9Im04Mi4wMjYgMTcyLjgzbC01LjQ4IDQ1LjA0bC0yOS4zNzMtNDQuMDU1em05MS45NS4wMDFsMzQuODU0Ljk4NGwtMjkuNDgzIDQ0LjA1N3ptMjguMTM2LTQ0LjQ0NGwtMjUuMzY1IDI1Ljg1MWwtMTkuNTU3LTguOTM3bC05LjM2MyAxOS42ODRsLTYuMTM4LTMzLjg0OXptLTE0OC4yMzcgMGw2MC40MzUgMi43NDlsLTYuMTM5IDMzLjg0OWwtOS4zNjUtMTkuNjgxbC0xOS40NTMgOC45MzV6Ii8+PHBhdGggZmlsbD0iI0UyNzUyNSIgZD0ibTUyLjE2NiAxMjMuMDgybDI4LjY5OCAyOS4xMjFsLjk5NCAyOC43NDl6bTE1MS42OTctLjA1MmwtMjkuNzQ2IDU3Ljk3M2wxLjEyLTI4Ljh6bS05MC45NTYgMS44MjZsMS4xNTUgNy4yN2wyLjg1NCAxOC4xMTFsLTEuODM1IDU1LjYyNWwtOC42NzUtNDQuNjg1bC0uMDAzLS40NjJ6bTMwLjE3MS0uMTAxbDYuNTIxIDM1Ljk2bC0uMDAzLjQ2MmwtOC42OTcgNDQuNzk3bC0uMzQ0LTExLjIwNWwtMS4zNTctNDQuODYyeiIvPjxwYXRoIGZpbGw9IiNGNTg0MUYiIGQ9Im0xNzcuNzg4IDE1MS4wNDZsLS45NzEgMjQuOTc4bC0zMC4yNzQgMjMuNTg3bC02LjEyLTQuMzI0bDYuODYtMzUuMzM1em0tOTkuNDcxIDBsMzAuMzk5IDguOTA2bDYuODYgMzUuMzM1bC02LjEyIDQuMzI0bC0zMC4yNzUtMjMuNTg5eiIvPjxwYXRoIGZpbGw9IiNDMEFDOUQiIGQ9Im02Ny4wMTggMjA4Ljg1OGwzOC43MzIgMTguMzUybC0uMTY0LTcuODM3bDMuMjQxLTIuODQ1aDM4LjMzNGwzLjM1OCAyLjgzNWwtLjI0OCA3LjgzMWwzOC40ODctMTguMjlsLTE4LjcyOCAxNS40NzZsLTIyLjY0NSAxNS41NTNoLTM4Ljg2OWwtMjIuNjMtMTUuNjE3eiIvPjxwYXRoIGZpbGw9IiMxNjE2MTYiIGQ9Im0xNDIuMjA0IDE5My40NzlsNS40NzYgMy44NjlsMy4yMDkgMjUuNjA0bC00LjY0NC0zLjkyMWgtMzYuNDc2bC00LjU1NiA0bDMuMTA0LTI1LjY4MWw1LjQ3OC0zLjg3MXoiLz48cGF0aCBmaWxsPSIjNzYzRTFBIiBkPSJNMjQyLjgxNCAyLjI1TDI1NiA0MS44MDdsLTguMjM1IDM5Ljk5N2w1Ljg2NCA0LjUyM2wtNy45MzUgNi4wNTRsNS45NjQgNC42MDZsLTcuODk3IDcuMTkxbDQuODQ4IDMuNTExbC0xMi44NjYgMTUuMDI2bC01Mi43Ny0xNS4zNjVsLS40NTctLjI0NWwtMzguMDI3LTMyLjA3OHptLTIyOS42MjggMGw5OC4zMjYgNzIuNzc3bC0zOC4wMjggMzIuMDc4bC0uNDU3LjI0NWwtNTIuNzcgMTUuMzY1bC0xMi44NjYtMTUuMDI2bDQuODQ0LTMuNTA4bC03Ljg5Mi03LjE5NGw1Ljk1Mi00LjYwMWwtOC4wNTQtNi4wNzFsNi4wODUtNC41MjZMMCA0MS44MDl6Ii8+PHBhdGggZmlsbD0iI0Y1ODQxRiIgZD0ibTE4MC4zOTIgMTAzLjk5bDU1LjkxMyAxNi4yNzlsMTguMTY1IDU1Ljk4NmgtNDcuOTI0bC0zMy4wMi40MTZsMjQuMDE0LTQ2LjgwOHptLTEwNC43ODQgMGwtMTcuMTUxIDI1Ljg3M2wyNC4wMTcgNDYuODA4bC0zMy4wMDUtLjQxNkgxLjYzMWwxOC4wNjMtNTUuOTg1em04Ny43NzYtNzAuODc4bC0xNS42MzkgNDIuMjM5bC0zLjMxOSA1Ny4wNmwtMS4yNyAxNy44ODVsLS4xMDEgNDUuNjg4aC0zMC4xMTFsLS4wOTgtNDUuNjAybC0xLjI3NC0xNy45ODZsLTMuMzItNTcuMDQ1bC0xNS42MzctNDIuMjM5eiIvPjwvc3ZnPg==\",\n readyState: WalletReadyState.NotDetected,\n isAIP62Standard: true,\n deeplinkProvider: \"https://link.metamask.io/dapp/\",\n },\n {\n name: \"Metamask (Ethereum)\",\n url: \"https://metamask.io/\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiB2aWV3Qm94PSIwIDAgMjU2IDI0MCI+PHBhdGggZmlsbD0iI0UxNzcyNiIgZD0iTTI1MC4wNjYgMEwxNDAuMjE5IDgxLjI3OWwyMC40MjctNDcuOXoiLz48cGF0aCBmaWxsPSIjRTI3NjI1IiBkPSJtNi4xOTEuMDk2bDg5LjE4MSAzMy4yODlsMTkuMzk2IDQ4LjUyOHpNMjA1Ljg2IDE3Mi44NThsNDguNTUxLjkyNGwtMTYuOTY4IDU3LjY0MmwtNTkuMjQzLTE2LjMxMXptLTE1NS43MjEgMGwyNy41NTcgNDIuMjU1bC01OS4xNDMgMTYuMzEybC0xNi44NjUtNTcuNjQzeiIvPjxwYXRoIGZpbGw9IiNFMjc2MjUiIGQ9Im0xMTIuMTMxIDY5LjU1MmwxLjk4NCA2NC4wODNsLTU5LjM3MS0yLjcwMWwxNi44ODgtMjUuNDc4bC4yMTQtLjI0NXptMzEuMTIzLS43MTVsNDAuOSAzNi4zNzZsLjIxMi4yNDRsMTYuODg4IDI1LjQ3OGwtNTkuMzU4IDIuN3pNNzkuNDM1IDE3My4wNDRsMzIuNDE4IDI1LjI1OWwtMzcuNjU4IDE4LjE4MXptOTcuMTM2LS4wMDRsNS4xMzEgNDMuNDQ1bC0zNy41NTMtMTguMTg0eiIvPjxwYXRoIGZpbGw9IiNENUJGQjIiIGQ9Im0xNDQuOTc4IDE5NS45MjJsMzguMTA3IDE4LjQ1MmwtMzUuNDQ3IDE2Ljg0NmwuMzY4LTExLjEzNHptLTMzLjk2Ny4wMDhsLTIuOTA5IDIzLjk3NGwuMjM5IDExLjMwM2wtMzUuNTMtMTYuODMzeiIvPjxwYXRoIGZpbGw9IiMyMzM0NDciIGQ9Im0xMDAuMDA3IDE0MS45OTlsOS45NTggMjAuOTI4bC0zMy45MDMtOS45MzJ6bTU1Ljk4NS4wMDJsMjQuMDU4IDEwLjk5NGwtMzQuMDE0IDkuOTI5eiIvPjxwYXRoIGZpbGw9IiNDQzYyMjgiIGQ9Im04Mi4wMjYgMTcyLjgzbC01LjQ4IDQ1LjA0bC0yOS4zNzMtNDQuMDU1em05MS45NS4wMDFsMzQuODU0Ljk4NGwtMjkuNDgzIDQ0LjA1N3ptMjguMTM2LTQ0LjQ0NGwtMjUuMzY1IDI1Ljg1MWwtMTkuNTU3LTguOTM3bC05LjM2MyAxOS42ODRsLTYuMTM4LTMzLjg0OXptLTE0OC4yMzcgMGw2MC40MzUgMi43NDlsLTYuMTM5IDMzLjg0OWwtOS4zNjUtMTkuNjgxbC0xOS40NTMgOC45MzV6Ii8+PHBhdGggZmlsbD0iI0UyNzUyNSIgZD0ibTUyLjE2NiAxMjMuMDgybDI4LjY5OCAyOS4xMjFsLjk5NCAyOC43NDl6bTE1MS42OTctLjA1MmwtMjkuNzQ2IDU3Ljk3M2wxLjEyLTI4Ljh6bS05MC45NTYgMS44MjZsMS4xNTUgNy4yN2wyLjg1NCAxOC4xMTFsLTEuODM1IDU1LjYyNWwtOC42NzUtNDQuNjg1bC0uMDAzLS40NjJ6bTMwLjE3MS0uMTAxbDYuNTIxIDM1Ljk2bC0uMDAzLjQ2MmwtOC42OTcgNDQuNzk3bC0uMzQ0LTExLjIwNWwtMS4zNTctNDQuODYyeiIvPjxwYXRoIGZpbGw9IiNGNTg0MUYiIGQ9Im0xNzcuNzg4IDE1MS4wNDZsLS45NzEgMjQuOTc4bC0zMC4yNzQgMjMuNTg3bC02LjEyLTQuMzI0bDYuODYtMzUuMzM1em0tOTkuNDcxIDBsMzAuMzk5IDguOTA2bDYuODYgMzUuMzM1bC02LjEyIDQuMzI0bC0zMC4yNzUtMjMuNTg5eiIvPjxwYXRoIGZpbGw9IiNDMEFDOUQiIGQ9Im02Ny4wMTggMjA4Ljg1OGwzOC43MzIgMTguMzUybC0uMTY0LTcuODM3bDMuMjQxLTIuODQ1aDM4LjMzNGwzLjM1OCAyLjgzNWwtLjI0OCA3LjgzMWwzOC40ODctMTguMjlsLTE4LjcyOCAxNS40NzZsLTIyLjY0NSAxNS41NTNoLTM4Ljg2OWwtMjIuNjMtMTUuNjE3eiIvPjxwYXRoIGZpbGw9IiMxNjE2MTYiIGQ9Im0xNDIuMjA0IDE5My40NzlsNS40NzYgMy44NjlsMy4yMDkgMjUuNjA0bC00LjY0NC0zLjkyMWgtMzYuNDc2bC00LjU1NiA0bDMuMTA0LTI1LjY4MWw1LjQ3OC0zLjg3MXoiLz48cGF0aCBmaWxsPSIjNzYzRTFBIiBkPSJNMjQyLjgxNCAyLjI1TDI1NiA0MS44MDdsLTguMjM1IDM5Ljk5N2w1Ljg2NCA0LjUyM2wtNy45MzUgNi4wNTRsNS45NjQgNC42MDZsLTcuODk3IDcuMTkxbDQuODQ4IDMuNTExbC0xMi44NjYgMTUuMDI2bC01Mi43Ny0xNS4zNjVsLS40NTctLjI0NWwtMzguMDI3LTMyLjA3OHptLTIyOS42MjggMGw5OC4zMjYgNzIuNzc3bC0zOC4wMjggMzIuMDc4bC0uNDU3LjI0NWwtNTIuNzcgMTUuMzY1bC0xMi44NjYtMTUuMDI2bDQuODQ0LTMuNTA4bC03Ljg5Mi03LjE5NGw1Ljk1Mi00LjYwMWwtOC4wNTQtNi4wNzFsNi4wODUtNC41MjZMMCA0MS44MDl6Ii8+PHBhdGggZmlsbD0iI0Y1ODQxRiIgZD0ibTE4MC4zOTIgMTAzLjk5bDU1LjkxMyAxNi4yNzlsMTguMTY1IDU1Ljk4NmgtNDcuOTI0bC0zMy4wMi40MTZsMjQuMDE0LTQ2LjgwOHptLTEwNC43ODQgMGwtMTcuMTUxIDI1Ljg3M2wyNC4wMTcgNDYuODA4bC0zMy4wMDUtLjQxNkgxLjYzMWwxOC4wNjMtNTUuOTg1em04Ny43NzYtNzAuODc4bC0xNS42MzkgNDIuMjM5bC0zLjMxOSA1Ny4wNmwtMS4yNyAxNy44ODVsLS4xMDEgNDUuNjg4aC0zMC4xMTFsLS4wOTgtNDUuNjAybC0xLjI3NC0xNy45ODZsLTMuMzItNTcuMDQ1bC0xNS42MzctNDIuMjM5eiIvPjwvc3ZnPg==\",\n readyState: WalletReadyState.NotDetected,\n isAIP62Standard: true,\n deeplinkProvider: \"https://link.metamask.io/dapp/\",\n },\n ];\n","import {\n AptosConnectAppleWallet,\n AptosConnectGoogleWallet,\n} from \"@aptos-connect/wallet-adapter-plugin\";\nimport { DappConfig, AdapterWallet } from \"./WalletCore\";\n\nexport function getSDKWallets(dappConfig?: DappConfig) {\n const sdkWallets: AdapterWallet[] = [];\n\n // Need to check window is defined for AptosConnect\n if (typeof window !== \"undefined\") {\n sdkWallets.push(\n new AptosConnectGoogleWallet({\n network: dappConfig?.network,\n dappId: dappConfig?.aptosConnectDappId,\n ...dappConfig?.aptosConnect,\n }),\n new AptosConnectAppleWallet({\n network: dappConfig?.network,\n dappId: dappConfig?.aptosConnectDappId,\n ...dappConfig?.aptosConnect,\n }),\n );\n }\n\n // Add new SDK wallet plugins (ones that should be installed as packages) here:\n // Ex. sdkWallets.push(new YourSDKWallet(dappConfig))\n\n return sdkWallets;\n}\n"]}
1
+ {"version":3,"sources":["/Users/maykon/Projects/@aptos-labs/aptos-wallet-adapter/packages/wallet-adapter-core/dist/index.js"],"names":[],"mappings":"AAAA","sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n APTOS_CONNECT_ACCOUNT_URL: () => APTOS_CONNECT_ACCOUNT_URL,\n APTOS_CONNECT_BASE_URL: () => APTOS_CONNECT_BASE_URL,\n ChainIdToAnsSupportedNetworkMap: () => ChainIdToAnsSupportedNetworkMap,\n NetworkName: () => NetworkName,\n WalletCore: () => WalletCore,\n WalletReadyState: () => WalletReadyState,\n aptosStandardSupportedWalletList: () => aptosStandardSupportedWalletList,\n convertNetwork: () => convertNetwork,\n crossChainStandardSupportedWalletList: () => crossChainStandardSupportedWalletList,\n fetchDevnetChainId: () => fetchDevnetChainId,\n generalizedErrorMessage: () => generalizedErrorMessage,\n getAptosConfig: () => getAptosConfig,\n getAptosConnectWallets: () => getAptosConnectWallets,\n getLocalStorage: () => getLocalStorage,\n getSDKWallets: () => getSDKWallets,\n groupAndSortWallets: () => groupAndSortWallets,\n handlePublishPackageTransaction: () => handlePublishPackageTransaction,\n isAptosConnectWallet: () => isAptosConnectWallet,\n isAptosLiveNetwork: () => isAptosLiveNetwork,\n isAptosNetwork: () => isAptosNetwork,\n isInAppBrowser: () => isInAppBrowser,\n isInstallRequired: () => isInstallRequired,\n isInstalledOrLoadable: () => isInstalledOrLoadable,\n isMobile: () => isMobile,\n isRedirectable: () => isRedirectable,\n partitionWallets: () => partitionWallets,\n removeLocalStorage: () => removeLocalStorage,\n setLocalStorage: () => setLocalStorage,\n truncateAddress: () => truncateAddress\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/version.ts\nvar WALLET_ADAPTER_CORE_VERSION = \"7.6.0\";\n\n// src/WalletCore.ts\nvar import_eventemitter3 = __toESM(require(\"eventemitter3\"));\nvar import_ts_sdk2 = require(\"@aptos-labs/ts-sdk\");\nvar import_wallet_standard = require(\"@aptos-labs/wallet-standard\");\n\n// src/ga/index.ts\nvar GA4 = class {\n constructor() {\n this.aptosGAID = true;\n this.injectGA(this.aptosGAID);\n }\n gtag(a, b, c) {\n let dataLayer = window.dataLayer || [];\n dataLayer.push(arguments);\n }\n injectGA(gaID) {\n if (typeof window === \"undefined\") return;\n if (!gaID) return;\n const head = document.getElementsByTagName(\"head\")[0];\n var myScript = document.createElement(\"script\");\n myScript.setAttribute(\n \"src\",\n `https://www.googletagmanager.com/gtag/js?id=${gaID}`\n );\n const that = this;\n myScript.onload = function() {\n that.gtag(\"js\", /* @__PURE__ */ new Date());\n that.gtag(\"config\", `${gaID}`, {\n send_page_view: false\n });\n };\n head.insertBefore(myScript, head.children[1]);\n }\n};\n\n// src/error/index.ts\nvar WalletError = class extends Error {\n constructor(message, error) {\n super(message);\n this.error = error;\n }\n};\nvar WalletNotSelectedError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletNotSelectedError\";\n }\n};\nvar WalletNotReadyError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletNotReadyError\";\n }\n};\nvar WalletConnectionError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletConnectionError\";\n }\n};\nvar WalletDisconnectionError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletDisconnectionError\";\n }\n};\nvar WalletAccountError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletAccountError\";\n }\n};\nvar WalletGetNetworkError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletGetNetworkError\";\n }\n};\nvar WalletAccountChangeError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletAccountChangeError\";\n }\n};\nvar WalletNetworkChangeError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletNetworkChangeError\";\n }\n};\nvar WalletNotConnectedError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletNotConnectedError\";\n }\n};\nvar WalletSignMessageError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletSignMessageError\";\n }\n};\nvar WalletSignMessageAndVerifyError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletSignMessageAndVerifyError\";\n }\n};\nvar WalletSignAndSubmitMessageError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletSignAndSubmitMessageError\";\n }\n};\nvar WalletSignTransactionError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletSignTransactionError\";\n }\n};\nvar WalletNotSupportedMethod = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletNotSupportedMethod\";\n }\n};\nvar WalletChangeNetworkError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletChangeNetworkError\";\n }\n};\nvar WalletSubmitTransactionError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletSubmitTransactionError\";\n }\n};\nvar WalletNotFoundError = class extends WalletError {\n constructor() {\n super(...arguments);\n this.name = \"WalletNotFoundError\";\n }\n};\n\n// src/constants.ts\nvar WalletReadyState = /* @__PURE__ */ ((WalletReadyState2) => {\n WalletReadyState2[\"Installed\"] = \"Installed\";\n WalletReadyState2[\"NotDetected\"] = \"NotDetected\";\n return WalletReadyState2;\n})(WalletReadyState || {});\nvar NetworkName = /* @__PURE__ */ ((NetworkName2) => {\n NetworkName2[\"Mainnet\"] = \"mainnet\";\n NetworkName2[\"Testnet\"] = \"testnet\";\n NetworkName2[\"Devnet\"] = \"devnet\";\n return NetworkName2;\n})(NetworkName || {});\nvar ChainIdToAnsSupportedNetworkMap = {\n \"1\": \"mainnet\",\n // mainnet\n \"2\": \"testnet\"\n // testnet\n};\nvar APTOS_CONNECT_BASE_URL = \"https://aptosconnect.app\";\nvar APTOS_CONNECT_ACCOUNT_URL = \"https://aptosconnect.app/dashboard/main-account\";\n\n// src/utils/helpers.ts\nvar import_ts_sdk = require(\"@aptos-labs/ts-sdk\");\nfunction isMobile() {\n return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(\n navigator.userAgent\n );\n}\nfunction isInAppBrowser() {\n const isIphone = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(\n navigator.userAgent\n );\n const isAndroid = /(Android).*Version\\/[\\d.]+.*Chrome\\/[^\\s]+ Mobile/i.test(\n navigator.userAgent\n );\n return isIphone || isAndroid;\n}\nfunction isRedirectable() {\n if (typeof navigator === \"undefined\" || !navigator) return false;\n return isMobile() && !isInAppBrowser();\n}\nfunction generalizedErrorMessage(error) {\n return typeof error === \"object\" && \"message\" in error ? error.message : error;\n}\nvar getAptosConfig = (networkInfo, dappConfig) => {\n if (!networkInfo) {\n throw new Error(\"Undefined network\");\n }\n const pluginSettings = {\n TRANSACTION_SUBMITTER: dappConfig?.transactionSubmitter\n };\n if (isAptosNetwork(networkInfo)) {\n const currentNetwork = convertNetwork(networkInfo);\n if (isAptosLiveNetwork(currentNetwork)) {\n const apiKey = dappConfig?.aptosApiKeys;\n return new import_ts_sdk.AptosConfig({\n network: currentNetwork,\n clientConfig: { API_KEY: apiKey ? apiKey[currentNetwork] : void 0 },\n pluginSettings\n });\n }\n return new import_ts_sdk.AptosConfig({\n network: currentNetwork,\n pluginSettings\n });\n }\n const knownNetworks = {\n okx: \"https://wallet.okx.com/fullnode/aptos/discover/rpc\"\n };\n if (networkInfo.url) {\n const isKnownNetwork = Object.values(knownNetworks).includes(\n networkInfo.url\n );\n if (isKnownNetwork) {\n return new import_ts_sdk.AptosConfig({\n network: import_ts_sdk.Network.CUSTOM,\n fullnode: networkInfo.url,\n pluginSettings\n });\n }\n }\n throw new Error(\n `Invalid network, network ${networkInfo.name} not supported with Aptos wallet adapter to prevent user from using an unexpected network.`\n );\n};\nvar isAptosNetwork = (networkInfo) => {\n if (!networkInfo) {\n throw new Error(\"Undefined network\");\n }\n return import_ts_sdk.NetworkToNodeAPI[networkInfo.name] !== void 0;\n};\nvar isAptosLiveNetwork = (networkInfo) => {\n return networkInfo === \"devnet\" || networkInfo === \"testnet\" || networkInfo === \"mainnet\";\n};\nvar fetchDevnetChainId = async () => {\n const aptos = new import_ts_sdk.Aptos();\n return await aptos.getChainId();\n};\nvar handlePublishPackageTransaction = (transactionInput) => {\n let metadataBytes = transactionInput.data.functionArguments[0];\n if (typeof metadataBytes === \"string\") {\n metadataBytes = import_ts_sdk.Hex.fromHexInput(metadataBytes).toUint8Array();\n }\n let byteCode = transactionInput.data.functionArguments[1];\n if (Array.isArray(byteCode)) {\n byteCode = byteCode.map((byte) => {\n if (typeof byte === \"string\") {\n return import_ts_sdk.Hex.fromHexInput(byte).toUint8Array();\n }\n return byte;\n });\n } else {\n throw new WalletSignAndSubmitMessageError(\n \"The bytecode argument must be an array.\"\n ).message;\n }\n return { metadataBytes, byteCode };\n};\nfunction convertNetwork(networkInfo) {\n switch (networkInfo?.name) {\n case \"mainnet\":\n return import_ts_sdk.Network.MAINNET;\n case \"testnet\":\n return import_ts_sdk.Network.TESTNET;\n case \"devnet\":\n return import_ts_sdk.Network.DEVNET;\n case \"local\":\n return import_ts_sdk.Network.LOCAL;\n default:\n throw new Error(\"Invalid Aptos network name\");\n }\n}\n\n// src/utils/localStorage.ts\nvar LOCAL_STORAGE_ITEM_KEY = \"AptosWalletName\";\nfunction setLocalStorage(walletName) {\n localStorage.setItem(LOCAL_STORAGE_ITEM_KEY, walletName);\n}\nfunction removeLocalStorage() {\n localStorage.removeItem(LOCAL_STORAGE_ITEM_KEY);\n}\nfunction getLocalStorage() {\n localStorage.getItem(LOCAL_STORAGE_ITEM_KEY);\n}\n\n// src/utils/walletSelector.ts\nfunction partitionWallets(wallets, partitionFunction = isInstalledOrLoadable) {\n const defaultWallets = [];\n const moreWallets = [];\n for (const wallet of wallets) {\n if (partitionFunction(wallet)) defaultWallets.push(wallet);\n else moreWallets.push(wallet);\n }\n return { defaultWallets, moreWallets };\n}\nfunction isInstalledOrLoadable(wallet) {\n return wallet.readyState === \"Installed\" /* Installed */;\n}\nfunction isInstallRequired(wallet) {\n const isWalletReady = isInstalledOrLoadable(wallet);\n const isMobile2 = !isWalletReady && isRedirectable();\n return !isMobile2 && !isWalletReady;\n}\nfunction truncateAddress(address) {\n if (!address) return;\n return `${address.slice(0, 6)}...${address.slice(-5)}`;\n}\nfunction isAptosConnectWallet(wallet) {\n if (!wallet.url) return false;\n return wallet.url.startsWith(APTOS_CONNECT_BASE_URL);\n}\nfunction getAptosConnectWallets(wallets) {\n const { defaultWallets, moreWallets } = partitionWallets(\n wallets,\n isAptosConnectWallet\n );\n return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets };\n}\nfunction groupAndSortWallets(wallets, options) {\n const { aptosConnectWallets, otherWallets } = getAptosConnectWallets(wallets);\n const { defaultWallets, moreWallets } = partitionWallets(otherWallets);\n if (options?.sortAptosConnectWallets) {\n aptosConnectWallets.sort(options.sortAptosConnectWallets);\n }\n if (options?.sortAvailableWallets) {\n defaultWallets.sort(options.sortAvailableWallets);\n }\n if (options?.sortInstallableWallets) {\n moreWallets.sort(options.sortInstallableWallets);\n }\n return {\n /** Wallets that use social login to create an account on the blockchain */\n aptosConnectWallets,\n /** Wallets that are currently installed or loadable. */\n availableWallets: defaultWallets,\n /** Wallets that are NOT currently installed or loadable. */\n installableWallets: moreWallets\n };\n}\n\n// src/registry.ts\nvar aptosStandardSupportedWalletList = [\n {\n name: \"OKX Wallet\",\n url: \"https://chromewebstore.google.com/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge\",\n icon: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJDSURBVHgB7Zq9jtpAEMfHlhEgQLiioXEkoAGECwoKxMcTRHmC5E3IoyRPkPAEkI7unJYmTgEFTYwA8a3NTKScLnCHN6c9r1e3P2llWQy7M/s1Gv1twCP0ej37dDq9x+Zut1t3t9vZjDEHIiSRSPg4ZpDL5fxkMvn1cDh8m0wmfugfO53OoFQq/crn8wxfY9EymQyrVCqMfHvScZx1p9ls3pFxXBy/bKlUipGPrVbLuQqAfsCliq3zl0H84zwtjQrOw4Mt1W63P5LvBm2d+Xz+YzqdgkqUy+WgWCy+Mc/nc282m4FqLBYL+3g8fjDxenq72WxANZbLJeA13zDX67UDioL5ybXwafMYu64Ltn3bdDweQ5R97fd7GyhBQMipx4POeEDHIu2LfDdBIGGz+hJ9CQ1ABjoA2egAZPM6AgiCAEQhsi/C4jHyPA/6/f5NG3Ks2+3CYDC4aTccDrn6ojG54MnEvG00GoVmWLIRNZ7wTCwDHYBsdACy0QHIhiuRETxlICWpMMhGZHmqS8qH6JLyGegAZKMDkI0uKf8X4SWlaZo+Pp1bRrwlJU8ZKLIvUjKh0WiQ3sRUbNVq9c5Ebew7KEo2m/1p4jJ4qAmDaqDQBzj5XyiAT4VCQezJigAU+IDU+z8vJFnGWeC+bKQV/5VZ71FV6L7PA3gg3tXrdQ+DgLhC+75Wq3no69P3MC0NFQpx2lL04Ql9gHK1bRDjsSBIvScBnDTk1WrlGIZBorIDEYJj+rhdgnQ67VmWRe0zlplXl81vcyEt0rSoYDUAAAAASUVORK5CYII=\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true\n },\n {\n name: \"Petra\",\n url: \"https://chromewebstore.google.com/detail/petra-aptos-wallet/ejjladinnckdgjemekebdpeokbikhfci?hl=en\",\n icon: \"data:image/png;base64,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\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: \"https://petra.app/explore?link=\"\n },\n {\n name: \"Nightly\",\n url: \"https://nightly.app/\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: \"nightly://v1?network=aptos&url=\"\n },\n {\n name: \"Pontem Wallet\",\n url: \"https://pontem.network/pontem-wallet\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDBDOC4wNzMwNCAwIDAgOC4wNzEzOSAwIDE3Ljk5NjNDMCAyNS4xMjk4IDQuMTczMTYgMzEuMzEwOCAxMC4yMDc2IDM0LjIyMDNWMzQuMjM1MUgxMC4yMzcyQzEyLjU4NiAzNS4zNjQ5IDE1LjIyMjggMzYgMTggMzZDMjcuOTI3IDM2IDM2IDI3LjkyODYgMzYgMTguMDAzN0MzNiA4LjA3MTM4IDI3LjkyNyAwIDE4IDBaTTE4IDEuNDc2OTJDMjcuMTA3MSAxLjQ3NjkyIDM0LjUyMjggOC44OTEwOCAzNC41MjI4IDE3Ljk5NjNDMzQuNTIyOCAyMC42MTA1IDMzLjkwOTcgMjMuMDkxNyAzMi44MjQgMjUuMjkyM0MzMC40NDU2IDI0LjE0MDMgMjguMDMwNCAyMy4yODM3IDI1LjU5MjkgMjIuNzAwM1Y4LjkyMDYyQzI1LjU5MjkgOC40NDA2MiAyNS4yMTYyIDguMDU2NjIgMjQuNzQzNSA4LjA1NjYySDIxLjcxNTJIMTQuMDg1NEgxMS4wNTdDMTAuNTkxNyA4LjA1NjYyIDEwLjIwNzYgOC40NDA2MiAxMC4yMDc2IDguOTIwNjJWMjIuNzY2OEM3Ljg0NDA3IDIzLjM1MDIgNS40OTUyOCAyNC4xOTIgMy4xODM0MiAyNS4yOTk3QzIuMDkwMjcgMjMuMDkxNyAxLjQ3NzIzIDIwLjYxNzggMS40NzcyMyAxNy45OTYzQzEuNDc3MjMgOC44OTEwOCA4Ljg5MjkgMS40NzY5MiAxOCAxLjQ3NjkyWk00LjEzNjIzIDI2Ljk2MTJDNi4wOTM1NiAyNS45OTM4IDguMTI0NzQgMjUuMjQ4IDEwLjIxNSAyNC43MzExVjMyLjU1ODhDNy43NDA2NiAzMS4yMzY5IDUuNjUwMzkgMjkuMzAyMiA0LjEzNjIzIDI2Ljk2MTJaTTE0LjA4NTQgMzQuMDQzMVYxNS42MDM3QzE0LjA4NTQgMTMuNDY5NSAxNS44MzU5IDExLjcwNDYgMTcuOTI2MSAxMS43MDQ2QzIwLjAxNjQgMTEuNzA0NiAyMS43MTUyIDEzLjQzMjYgMjEuNzE1MiAxNS41NTk0QzIxLjcxNTIgMTUuNTc0MiAyMS43MDc4IDE1LjU4ODkgMjEuNzA3OCAxNS42MDM3SDIxLjcxNTJWMjIuMDIwOUMxOS45MzUyIDIxLjgxNDIgMTguMTQ3NyAyMS43NDc3IDE2LjM2MDMgMjEuODQzN0wxNC44OTA0IDIzLjk3NzhDMTcuMTgwMSAyMy43ODU4IDE5LjQxMDcgMjMuODAwNiAyMS42MTE4IDI0LjA1MTdDMjEuNjM0IDI0LjA1MTcgMjEuNjQ4NyAyNC4wNTE3IDIxLjY3MDkgMjQuMDU5MUMyMS42ODU3IDI0LjA1OTEgMjEuNzAwNSAyNC4wNTkxIDIxLjcyMjYgMjQuMDY2NUMyMi4xMDY3IDI0LjExMDggMjMuNTAyNyAyNC4yODggMjQuNzgwNSAyNC42MDU1TDIxLjcyMjYgMjUuNjQ2OFYzNC4xMDIyQzIwLjUyNjEgMzQuMzc1NCAxOS4yODUyIDM0LjUzMDUgMTguMDE0OCAzNC41MzA1QzE2LjY0ODMgMzQuNTE1NyAxNS4zNDEgMzQuMzQ1OCAxNC4wODU0IDM0LjA0MzFaTTI1LjU4NTYgMzIuNjYyMlYyNC43NjhDMjcuNjY4NCAyNS4yOTIzIDI5LjcyOTIgMjYuMDYwMyAzMS43OTczIDI3LjA2NDZDMzAuMjQ2MiAyOS40MjAzIDI4LjEwNDIgMzEuMzU1MSAyNS41ODU2IDMyLjY2MjJaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjIyXzE2NzApIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjIyXzE2NzAiIHgxPSIxNy45OTk3IiB5MT0iMzYuNzc4OSIgeDI9IjE3Ljk5OTciIHkyPSItNS41MTk3OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMDg1OCIgc3RvcC1jb2xvcj0iIzhEMjlDMSIvPgo8c3RvcCBvZmZzZXQ9IjAuMjM4MyIgc3RvcC1jb2xvcj0iIzk0MkJCQiIvPgo8c3RvcCBvZmZzZXQ9IjAuNDY2NyIgc3RvcC1jb2xvcj0iI0E5MkZBQyIvPgo8c3RvcCBvZmZzZXQ9IjAuNzQxMyIgc3RvcC1jb2xvcj0iI0NBMzc5MyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGMDNGNzciLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true\n },\n {\n name: \"Backpack\",\n url: \"https://chromewebstore.google.com/detail/backpack/aflkmfhebedbjioipglgcbcmnbpgliof\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxyZWN0IHg9IjEwIiB3aWR0aD0iNDQiIGhlaWdodD0iNjQiIGZpbGw9InVybCgjcGF0dGVybjBfMTdfNCkiLz4KPGRlZnM+CjxwYXR0ZXJuIGlkPSJwYXR0ZXJuMF8xN180IiBwYXR0ZXJuQ29udGVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+Cjx1c2UgeGxpbms6aHJlZj0iI2ltYWdlMF8xN180IiB0cmFuc2Zvcm09InNjYWxlKDAuMDE4MTgxOCAwLjAxMjUpIi8+CjwvcGF0dGVybj4KPGltYWdlIGlkPSJpbWFnZTBfMTdfNCIgd2lkdGg9IjU1IiBoZWlnaHQ9IjgwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURjQUFBQlFDQVlBQUFDOUt1MmtBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBUWpTVVJCVkhnQjdadlJjZHRHRUliL1BkTFBvUjh6SThsVUJXWUY1TG1DT0JWWXFzQmhCWllyaUZPQjVRcXNWT0FqWFlDWkNrUmJtc2xqK0I0U20xMlFZaUNKU2tqY3dpSXc5ODF3UUkxQTRIN2NZZkh2M29GUUFaZmVkOXBBanhib3dmRnpCanBZZnRZdzA4UXh2bklMa3prd09RNWhCbU1JaGx4NTc2WFZiOEFpNm82WUxWcHl3Um45ZnZRNW5NTUlFM0VxaXBqZk02T0xTS1JCMDh6UjhDaUVDMFRpRU1sVnYvOEdHWCt5RUtiSUVPNVN4aC96NDBZUzFYUExCdEFaS2lKakdqNzdITjZoSktYRlNkRG90ak8rUkxYTTVvNk95d2FiTmtvaVArenF5VUUwbFNzMGtXSDVsUml6ckFWdHlJeVFiM1cvNlVQSG1PUGZvYXpEMFMzUVlaSkFSSGdPRFVqTXZSYmc1WHYwL1pkSUpLckgxS0hjNVUrSnFMb3RCbzdDaVdjU0xHWS9oakJGUlVTTDIrQWplMWcrMEhleFh4SjFNZEV0WlRTeThwdWx4S21nSnd1Y3NPT2ZSSWhIVlJDQytNMFBUMW9JWlhwNEozRUZZK3p4blNIQ09STjlPQXdoYlAyYmJYYkszWWdZNDhjUWRRL0pIdHBFdzIxNjhuK05zL2pIMTduTjJnZGhDdVBsWE5xempiRitzT2Z5UU1IOGNXOUViVUo2Y1U1MCtsRGcyU2h1SmV6VEt1bTBhWWQ0VU4weTg3MnNQTzdBRWxtSlhtd1N1SEZZbWdtVEU1T2tMZUxzbng2TXdyRitEc2VqcCtyMDJkR3BCSWtwWXBGMmFudTFRKzZmL2c3Zit2MWZDZlFMSWxGUkIxdmtZbGQ5ZnlZdGpFNU1HZnp1YUR3ZTNtcEQ4WTl2M3A5SUZ2d2VrVWp4NTNTWFdvalZlZUhvUmZGUmNXdFlPbzYvZ25LOTN1NWE1SkY2aWV4UHZ5RVN2VURGNGJrV3AxY3Z0ZzZpeFozRGNUaERDZVlPWjFnbHVHWFJoTGVkWVgxTHJjV1o5QnFYdi9yTGFCZmZlOUtJMXpmZmNuRnFxMHlxVitJQkVRRTVrM0pDSjdlSldJbVQyc2NyR0hBUXdnUVIvQTJEUjRPUzRhVnVWc09TUGZZQXU1STY1NTFGMTk3M09PTXZNRUFmMWpFTnpKMVJ4bi9CZ0xZWUJaY3RiQ3JGK1FFUjUycGlmMTlrc1lCM1lvSE1Ebmd6MXN0aWRlOHJVdi9zdVZVQjFPcVFyMjdxSnJ1aU9hT1k2aE1ZUWNRL1NFQmhPNGN1WVhqTzVXeFVtdzNzVndHdDVUZ3h5VjFZSXZuZjlXQ3dVMFB6L1kzelJobmlIYm9lK0VzWkRsMFlvMWFzSlViMnY4b0JWZFprOVB4MDFSOHdxbVExWTBvdFRIVlNaS0dKcWtTeXlpdG5ldXJLeFQwaTBUT3IrMHdTVjFlU3VMcVN4TldWSks2dUpIRjFKWW1ySzFwbUNHZ2lSQmRPWnlaTjVzbjJDWmtYYkJPRzZ5bXNteEowM2RIRk83R1Y3MFFpa2JoSEhpMTFOUTRSblZndG4zOVVTTmRiYzlDVkRXUzFOR1Avb0xkYVR2ZG9JQ1NUTXVvdDdhYXc5b2g4S1Q4YVRCSlhWNUs0dXBMRTFaVWtycTQwWHB6NSs5bjdncE5VcDVIaWRLbUdrOXlua2VLWVNNU0Iva0FEa1pSbjZzamhIQTBreTJpMExETU1CbDhzWDIxNWJQUitPeGlQanZOSGdaVFVmMjVNU1YxcUtMcm1iUG0xZ0w1YmdBeGVoRDZUZjNTcldQQm16RXlqUFM5ZnVwOHc0ZGJMZy84QUhSZXNCMHpiQzQ0QUFBQUFTVVZPUks1Q1lJST0iLz4KPC9kZWZzPgo8L3N2Zz4K\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: \"https://backpack.app/ul/v1?url=\"\n },\n {\n name: \"Bitget Wallet\",\n url: \"https://web3.bitget.com\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSIjMDAxRjI5Ii8+CjxwYXRoIGQ9Ik0yMTkuOTQ4IDk1LjcwMjJDMjAxLjYyMyA5NS42OTI5IDE4My4zMyA5NS42ODM1IDE2NC45NDEgOTUuNzExNkMxNTMuODIyIDk1LjcxMTYgMTQ5LjY1MSAxMDkuNjcxIDE1Ny45MjEgMTE3LjkzOUwyODMuMDk4IDI0My4xMTdDMjg3LjAwNCAyNDYuNjkgMjg5LjQ0MSAyNTAuNTc0IDI4OS41MyAyNTUuNjkzQzI4OS40NDEgMjYwLjgxMiAyODcuMDA0IDI2NC42OTYgMjgzLjA5OCAyNjguMjY5TDE1Ny45MjEgMzkzLjQ0NkMxNDkuNjUxIDQwMS43MTUgMTUzLjgyMiA0MTUuNjc0IDE2NC45NDEgNDE1LjY3NEMxODMuMzMgNDE1LjcwMiAyMDEuNjIzIDQxNS42OTMgMjE5Ljk0OCA0MTUuNjgzQzIyOS4xMjIgNDE1LjY3OSAyMzguMzA1IDQxNS42NzQgMjQ3LjUxMSA0MTUuNjc0QzI1OS41NTUgNDE1LjY3NCAyNjYuNzIgNDA5LjI0IDI3My4xNTQgNDAyLjgwNUwzODYuMDQ3IDI4OS45MTJDMzk1LjA1NyAyODAuOTAyIDQwMy4xMTkgMjY4LjkzOSA0MDMuMDA5IDI1NS42OTNDNDAzLjExOSAyNDIuNDQ3IDM5NS4wNTcgMjMwLjQ4NCAzODYuMDQ3IDIyMS40NzRMMjczLjE1NCAxMDguNThDMjY2LjcyIDEwMi4xNDYgMjU5LjU1NSA5NS43MTE2IDI0Ny41MTEgOTUuNzExNkMyMzguMzA1IDk1LjcxMTYgMjI5LjEyMiA5NS43MDY5IDIxOS45NDggOTUuNzAyMloiIGZpbGw9IiMwMEYwRkYiLz4KPC9zdmc+Cg==\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true\n },\n {\n name: \"Gate Wallet\",\n url: \"https://www.gate.com/zh/web3/\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNjAwcHgiIGhlaWdodD0iNjAwcHgiIHZpZXdCb3g9IjAgMCA2MDAgNjAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPHRpdGxlPue8lue7hCA3PC90aXRsZT4KICAgIDxkZWZzPgogICAgICAgIDxwb2x5Z29uIGlkPSJwYXRoLTEiIHBvaW50cz0iMCAwIDYwMCAwIDYwMCA2MDAgMCA2MDAiPjwvcG9seWdvbj4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSLmjaLoibIiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJTVkciIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNzU1LjAwMDAwMCwgLTU1MTguMDAwMDAwKSI+CiAgICAgICAgICAgIDxnIGlkPSLnvJbnu4QtNyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTc1NS4wMDAwMDAsIDU1MTguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0i57yW57uEIj4KICAgICAgICAgICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgPC9tYXNrPgogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJDbGlwLTIiPjwvZz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzAwLDQ2NC45OTg0MjcgQzIwOC44NzMwNjksNDY0Ljk5ODQyNyAxMzQuOTk2NTA0LDM5MS4xMjI1NjYgMTM0Ljk5NjUwNCwyOTkuOTk2NTA0IEMxMzQuOTk2NTA0LDIwOC44NzA0NDIgMjA4Ljg3MzA2OSwxMzUuMDAwOTM4IDMwMCwxMzUuMDAwOTM4IEwzMDAsLTAuMDAwNjM1NjAwNjI0IEMxMzQuMzEwMDQ5LC0wLjAwMDYzNTYwMDYyNCAwLDEzNC4zMTQ0ODkgMCwyOTkuOTk2NTA0IEMwLDQ2NS42Nzg1MiAxMzQuMzEwMDQ5LDYwMCAzMDAsNjAwIEM0NjUuNjg5OTUxLDYwMCA2MDAsNDY1LjY3ODUyIDYwMCwyOTkuOTk2NTA0IEw0NjUuMDAzNDk2LDI5OS45OTY1MDQgQzQ2NS4wMDM0OTYsMzkxLjEyMjU2NiAzOTEuMTI2OTMxLDQ2NC45OTg0MjcgMzAwLDQ2NC45OTg0MjciIGlkPSJGaWxsLTEiIGZpbGw9IiMyMzU0RTYiIG1hc2s9InVybCgjbWFzay0yKSI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IkZpbGwtMyIgZmlsbD0iIzE3RTZBMSIgcG9pbnRzPSIyOTkuOTkyMzczIDI5OS45OTcxNCA0NjQuOTk1ODY5IDI5OS45OTcxNCA0NjQuOTk1ODY5IDEzNC45OTUyMTcgMjk5Ljk5MjM3MyAxMzQuOTk1MjE3Ij48L3BvbHlnb24+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true\n }\n];\nvar crossChainStandardSupportedWalletList = [\n {\n name: \"Phantom (Solana)\",\n url: \"https://phantom.com/\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA4IiBoZWlnaHQ9IjEwOCIgdmlld0JveD0iMCAwIDEwOCAxMDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiByeD0iMjYiIGZpbGw9IiNBQjlGRjIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00Ni41MjY3IDY5LjkyMjlDNDIuMDA1NCA3Ni44NTA5IDM0LjQyOTIgODUuNjE4MiAyNC4zNDggODUuNjE4MkMxOS41ODI0IDg1LjYxODIgMTUgODMuNjU2MyAxNSA3NS4xMzQyQzE1IDUzLjQzMDUgNDQuNjMyNiAxOS44MzI3IDcyLjEyNjggMTkuODMyN0M4Ny43NjggMTkuODMyNyA5NCAzMC42ODQ2IDk0IDQzLjAwNzlDOTQgNTguODI1OCA4My43MzU1IDc2LjkxMjIgNzMuNTMyMSA3Ni45MTIyQzcwLjI5MzkgNzYuOTEyMiA2OC43MDUzIDc1LjEzNDIgNjguNzA1MyA3Mi4zMTRDNjguNzA1MyA3MS41NzgzIDY4LjgyNzUgNzAuNzgxMiA2OS4wNzE5IDY5LjkyMjlDNjUuNTg5MyA3NS44Njk5IDU4Ljg2ODUgODEuMzg3OCA1Mi41NzU0IDgxLjM4NzhDNDcuOTkzIDgxLjM4NzggNDUuNjcxMyA3OC41MDYzIDQ1LjY3MTMgNzQuNDU5OEM0NS42NzEzIDcyLjk4ODQgNDUuOTc2OCA3MS40NTU2IDQ2LjUyNjcgNjkuOTIyOVpNODMuNjc2MSA0Mi41Nzk0QzgzLjY3NjEgNDYuMTcwNCA4MS41NTc1IDQ3Ljk2NTggNzkuMTg3NSA0Ny45NjU4Qzc2Ljc4MTYgNDcuOTY1OCA3NC42OTg5IDQ2LjE3MDQgNzQuNjk4OSA0Mi41Nzk0Qzc0LjY5ODkgMzguOTg4NSA3Ni43ODE2IDM3LjE5MzEgNzkuMTg3NSAzNy4xOTMxQzgxLjU1NzUgMzcuMTkzMSA4My42NzYxIDM4Ljk4ODUgODMuNjc2MSA0Mi41Nzk0Wk03MC4yMTAzIDQyLjU3OTVDNzAuMjEwMyA0Ni4xNzA0IDY4LjA5MTYgNDcuOTY1OCA2NS43MjE2IDQ3Ljk2NThDNjMuMzE1NyA0Ny45NjU4IDYxLjIzMyA0Ni4xNzA0IDYxLjIzMyA0Mi41Nzk1QzYxLjIzMyAzOC45ODg1IDYzLjMxNTcgMzcuMTkzMSA2NS43MjE2IDM3LjE5MzFDNjguMDkxNiAzNy4xOTMxIDcwLjIxMDMgMzguOTg4NSA3MC4yMTAzIDQyLjU3OTVaIiBmaWxsPSIjRkZGREY4Ii8+Cjwvc3ZnPgo=\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: `https://phantom.app/ul/browse/`\n },\n {\n name: \"Phantom (Ethereum)\",\n url: \"https://phantom.com/\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA4IiBoZWlnaHQ9IjEwOCIgdmlld0JveD0iMCAwIDEwOCAxMDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiByeD0iMjYiIGZpbGw9IiNBQjlGRjIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00Ni41MjY3IDY5LjkyMjlDNDIuMDA1NCA3Ni44NTA5IDM0LjQyOTIgODUuNjE4MiAyNC4zNDggODUuNjE4MkMxOS41ODI0IDg1LjYxODIgMTUgODMuNjU2MyAxNSA3NS4xMzQyQzE1IDUzLjQzMDUgNDQuNjMyNiAxOS44MzI3IDcyLjEyNjggMTkuODMyN0M4Ny43NjggMTkuODMyNyA5NCAzMC42ODQ2IDk0IDQzLjAwNzlDOTQgNTguODI1OCA4My43MzU1IDc2LjkxMjIgNzMuNTMyMSA3Ni45MTIyQzcwLjI5MzkgNzYuOTEyMiA2OC43MDUzIDc1LjEzNDIgNjguNzA1MyA3Mi4zMTRDNjguNzA1MyA3MS41NzgzIDY4LjgyNzUgNzAuNzgxMiA2OS4wNzE5IDY5LjkyMjlDNjUuNTg5MyA3NS44Njk5IDU4Ljg2ODUgODEuMzg3OCA1Mi41NzU0IDgxLjM4NzhDNDcuOTkzIDgxLjM4NzggNDUuNjcxMyA3OC41MDYzIDQ1LjY3MTMgNzQuNDU5OEM0NS42NzEzIDcyLjk4ODQgNDUuOTc2OCA3MS40NTU2IDQ2LjUyNjcgNjkuOTIyOVpNODMuNjc2MSA0Mi41Nzk0QzgzLjY3NjEgNDYuMTcwNCA4MS41NTc1IDQ3Ljk2NTggNzkuMTg3NSA0Ny45NjU4Qzc2Ljc4MTYgNDcuOTY1OCA3NC42OTg5IDQ2LjE3MDQgNzQuNjk4OSA0Mi41Nzk0Qzc0LjY5ODkgMzguOTg4NSA3Ni43ODE2IDM3LjE5MzEgNzkuMTg3NSAzNy4xOTMxQzgxLjU1NzUgMzcuMTkzMSA4My42NzYxIDM4Ljk4ODUgODMuNjc2MSA0Mi41Nzk0Wk03MC4yMTAzIDQyLjU3OTVDNzAuMjEwMyA0Ni4xNzA0IDY4LjA5MTYgNDcuOTY1OCA2NS43MjE2IDQ3Ljk2NThDNjMuMzE1NyA0Ny45NjU4IDYxLjIzMyA0Ni4xNzA0IDYxLjIzMyA0Mi41Nzk1QzYxLjIzMyAzOC45ODg1IDYzLjMxNTcgMzcuMTkzMSA2NS43MjE2IDM3LjE5MzFDNjguMDkxNiAzNy4xOTMxIDcwLjIxMDMgMzguOTg4NSA3MC4yMTAzIDQyLjU3OTVaIiBmaWxsPSIjRkZGREY4Ii8+Cjwvc3ZnPgo=\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: `https://phantom.app/ul/browse/`\n },\n {\n name: \"Nightly (Solana)\",\n url: \"https://nightly.app/\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: \"nightly://v1?network=aptos&url=\"\n },\n {\n name: \"Nightly (Ethereum)\",\n url: \"https://nightly.app/\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\",\n readyState: \"NotDetected\" /* NotDetected */,\n isAIP62Standard: true,\n deeplinkProvider: \"nightly://v1?network=aptos&url=\"\n }\n];\n\n// src/sdkWallets.ts\nvar import_wallet_adapter_plugin = require(\"@aptos-connect/wallet-adapter-plugin\");\nfunction getSDKWallets(dappConfig) {\n const sdkWallets = [];\n if (typeof window !== \"undefined\") {\n sdkWallets.push(\n new import_wallet_adapter_plugin.AptosConnectGoogleWallet({\n network: dappConfig?.network,\n dappId: dappConfig?.aptosConnectDappId,\n ...dappConfig?.aptosConnect\n }),\n new import_wallet_adapter_plugin.AptosConnectAppleWallet({\n network: dappConfig?.network,\n dappId: dappConfig?.aptosConnectDappId,\n ...dappConfig?.aptosConnect\n })\n );\n }\n return sdkWallets;\n}\n\n// src/WalletCore.ts\nvar WalletCore = class extends import_eventemitter3.default {\n constructor(optInWallets, dappConfig, disableTelemetry) {\n super();\n // Local private variable to hold the wallet that is currently connected\n this._wallet = null;\n // Local private variable to hold SDK wallets in the adapter\n this._sdkWallets = [];\n // Local array that holds all the wallets that are AIP-62 standard compatible\n this._standard_wallets = [];\n // Local array that holds all the wallets that are AIP-62 standard compatible but are not installed on the user machine\n this._standard_not_detected_wallets = [];\n // Local private variable to hold the network that is currently connected\n this._network = null;\n // Local private variable to hold the wallet connected state\n this._connected = false;\n // Local private variable to hold the connecting state\n this._connecting = false;\n // Local private variable to hold the account that is currently connected\n this._account = null;\n // Private array that holds all the Wallets a dapp decided to opt-in to\n this._optInWallets = [];\n // Local flag to disable the adapter telemetry tool\n this._disableTelemetry = false;\n // Google Analytics 4 module\n this.ga4 = null;\n this._optInWallets = optInWallets || [];\n this._dappConfig = dappConfig;\n this._disableTelemetry = disableTelemetry ?? false;\n this._sdkWallets = getSDKWallets(this._dappConfig);\n if (!this._disableTelemetry) {\n this.ga4 = new GA4();\n }\n this.fetchExtensionAIP62AptosWallets();\n this.fetchSDKAIP62AptosWallets();\n this.appendNotDetectedStandardSupportedWallets();\n }\n fetchExtensionAIP62AptosWallets() {\n let { aptosWallets, on } = (0, import_wallet_standard.getAptosWallets)();\n this.setExtensionAIP62Wallets(aptosWallets);\n if (typeof window === \"undefined\") return;\n const that = this;\n const removeRegisterListener = on(\"register\", function() {\n let { aptosWallets: aptosWallets2 } = (0, import_wallet_standard.getAptosWallets)();\n that.setExtensionAIP62Wallets(aptosWallets2);\n });\n const removeUnregisterListener = on(\"unregister\", function() {\n let { aptosWallets: aptosWallets2 } = (0, import_wallet_standard.getAptosWallets)();\n that.setExtensionAIP62Wallets(aptosWallets2);\n });\n }\n /**\n * Set AIP-62 extension wallets\n *\n * @param extensionwWallets\n */\n setExtensionAIP62Wallets(extensionwWallets) {\n extensionwWallets.map((wallet) => {\n if (this.excludeWallet(wallet)) {\n return;\n }\n if (wallet.name === \"Rimosafe\") {\n return;\n }\n const isValid = (0, import_wallet_standard.isWalletWithRequiredFeatureSet)(wallet);\n if (isValid) {\n const index = this._standard_not_detected_wallets.findIndex(\n (notDetctedWallet) => notDetctedWallet.name == wallet.name\n );\n if (index !== -1) {\n this._standard_not_detected_wallets.splice(index, 1);\n }\n const alreadyExists = this._standard_wallets.some(\n (w) => w.name === wallet.name\n );\n if (!alreadyExists) {\n wallet.readyState = \"Installed\" /* Installed */;\n wallet.isAptosNativeWallet = this.isAptosNativeWallet(wallet);\n this._standard_wallets.push(wallet);\n this.emit(\"standardWalletsAdded\", wallet);\n }\n }\n });\n }\n /**\n * Set AIP-62 SDK wallets\n */\n fetchSDKAIP62AptosWallets() {\n this._sdkWallets.map((wallet) => {\n if (this.excludeWallet(wallet)) {\n return;\n }\n const isValid = (0, import_wallet_standard.isWalletWithRequiredFeatureSet)(wallet);\n if (isValid) {\n wallet.readyState = \"Installed\" /* Installed */;\n wallet.isAptosNativeWallet = this.isAptosNativeWallet(wallet);\n this._standard_wallets.push(wallet);\n }\n });\n }\n // Aptos native wallets do not have an authenticationFunction property\n isAptosNativeWallet(wallet) {\n return !(\"authenticationFunction\" in wallet);\n }\n // Since we can't discover AIP-62 wallets that are not installed on the user machine,\n // we hold a AIP-62 wallets registry to show on the wallet selector modal for the users.\n // Append wallets from wallet standard support registry to the `_standard_not_detected_wallets` array\n // when wallet is not installed on the user machine\n appendNotDetectedStandardSupportedWallets() {\n const walletRegistry = this._dappConfig?.crossChainWallets ? [\n ...aptosStandardSupportedWalletList,\n ...crossChainStandardSupportedWalletList\n ] : aptosStandardSupportedWalletList;\n walletRegistry.map((supportedWallet) => {\n const existingStandardWallet = this._standard_wallets.find(\n (wallet) => wallet.name == supportedWallet.name\n );\n if (existingStandardWallet) {\n return;\n }\n if (this.excludeWallet(supportedWallet)) {\n return;\n }\n if (!existingStandardWallet) {\n supportedWallet.isAptosNativeWallet = !(\"authenticationFunction\" in supportedWallet);\n this._standard_not_detected_wallets.push(supportedWallet);\n this.emit(\"standardNotDetectedWalletAdded\", supportedWallet);\n }\n });\n }\n /**\n * A function that excludes an AIP-62 compatible wallet the dapp doesnt want to include\n *\n * @param wallet AdapterWallet | AdapterNotDetectedWallet\n * @returns boolean\n */\n excludeWallet(wallet) {\n if (this._optInWallets.length > 0 && !this._optInWallets.includes(wallet.name)) {\n return true;\n }\n return false;\n }\n recordEvent(eventName, additionalInfo) {\n this.ga4?.gtag(\"event\", `wallet_adapter_${eventName}`, {\n wallet: this._wallet?.name,\n network: this._network?.name,\n network_url: this._network?.url,\n adapter_core_version: WALLET_ADAPTER_CORE_VERSION,\n send_to: true,\n ...additionalInfo\n });\n }\n /**\n * Helper function to ensure wallet exists\n *\n * @param wallet A wallet\n */\n ensureWalletExists(wallet) {\n if (!wallet) {\n throw new WalletNotConnectedError().name;\n }\n if (!(wallet.readyState === \"Installed\" /* Installed */))\n throw new WalletNotReadyError(\"Wallet is not set\").name;\n }\n /**\n * Helper function to ensure account exists\n *\n * @param account An account\n */\n ensureAccountExists(account) {\n if (!account) {\n throw new WalletAccountError(\"Account is not set\").name;\n }\n }\n /**\n * Queries and sets ANS name for the current connected wallet account\n */\n async setAnsName() {\n if (this._network?.chainId && this._account) {\n if (this._account.ansName) return;\n if (!ChainIdToAnsSupportedNetworkMap[this._network.chainId] || !isAptosNetwork(this._network)) {\n this._account.ansName = void 0;\n return;\n }\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new import_ts_sdk2.Aptos(aptosConfig);\n try {\n const name = await aptos.ans.getPrimaryName({\n address: this._account.address.toString()\n });\n this._account.ansName = name;\n } catch (error) {\n console.log(`Error setting ANS name ${error}`);\n }\n }\n }\n /**\n * Function to cleat wallet adapter data.\n *\n * - Removes current connected wallet state\n * - Removes current connected account state\n * - Removes current connected network state\n * - Removes autoconnect local storage value\n */\n clearData() {\n this._connected = false;\n this.setWallet(null);\n this.setAccount(null);\n this.setNetwork(null);\n removeLocalStorage();\n }\n /**\n * Sets the connected wallet\n *\n * @param wallet A wallet\n */\n setWallet(wallet) {\n this._wallet = wallet;\n }\n /**\n * Sets the connected account\n *\n * @param account An account\n */\n setAccount(account) {\n this._account = account;\n }\n /**\n * Sets the connected network\n *\n * @param network A network\n */\n setNetwork(network) {\n this._network = network;\n }\n /**\n * Helper function to detect whether a wallet is connected\n *\n * @returns boolean\n */\n isConnected() {\n return this._connected;\n }\n /**\n * Getter to fetch all detected wallets\n */\n get wallets() {\n return this._standard_wallets;\n }\n get notDetectedWallets() {\n return this._standard_not_detected_wallets;\n }\n /**\n * Getter for the current connected wallet\n *\n * @return wallet info\n * @throws WalletNotSelectedError\n */\n get wallet() {\n try {\n if (!this._wallet) return null;\n return this._wallet;\n } catch (error) {\n throw new WalletNotSelectedError(error).message;\n }\n }\n /**\n * Getter for the current connected account\n *\n * @return account info\n * @throws WalletAccountError\n */\n get account() {\n try {\n return this._account;\n } catch (error) {\n throw new WalletAccountError(error).message;\n }\n }\n /**\n * Getter for the current wallet network\n *\n * @return network info\n * @throws WalletGetNetworkError\n */\n get network() {\n try {\n return this._network;\n } catch (error) {\n throw new WalletGetNetworkError(error).message;\n }\n }\n /**\n * Helper function to run some checks before we connect with a wallet.\n *\n * @param walletName. The wallet name we want to connect with.\n */\n async connect(walletName) {\n if (isRedirectable()) {\n const selectedWallet2 = this._standard_not_detected_wallets.find(\n (wallet) => wallet.name === walletName\n );\n if (selectedWallet2) {\n const uninstalledWallet = selectedWallet2;\n if (uninstalledWallet.deeplinkProvider) {\n let parameter = \"\";\n if (uninstalledWallet.name.includes(\"Phantom\")) {\n let url = encodeURIComponent(window.location.href);\n let ref = encodeURIComponent(window.location.origin);\n parameter = `${url}?ref=${ref}`;\n } else {\n parameter = encodeURIComponent(window.location.href);\n }\n const location = uninstalledWallet.deeplinkProvider.concat(parameter);\n window.location.href = location;\n return;\n }\n }\n }\n const allDetectedWallets = this._standard_wallets;\n const selectedWallet = allDetectedWallets.find(\n (wallet) => wallet.name === walletName\n );\n if (!selectedWallet) return;\n if (this._connected && this._account) {\n if (this._wallet?.name === walletName)\n throw new WalletConnectionError(\n `${walletName} wallet is already connected`\n ).message;\n }\n await this.connectWallet(selectedWallet, async () => {\n const response = await selectedWallet.features[\"aptos:connect\"].connect();\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return { account: response.args, output: void 0 };\n });\n }\n /**\n * Signs into the wallet by connecting and signing an authentication messages.\n *\n * For more information, visit: https://siwa.aptos.dev\n *\n * @param args\n * @param args.input The AptosSignInInput which defines how the SIWA Message should be constructed\n * @param args.walletName The name of the wallet to sign into\n * @returns The AptosSignInOutput which contains the account and signature information\n */\n async signIn(args) {\n const { input, walletName } = args;\n const allDetectedWallets = this._standard_wallets;\n const selectedWallet = allDetectedWallets.find(\n (wallet) => wallet.name === walletName\n );\n if (!selectedWallet) {\n throw new WalletNotFoundError(`Wallet ${walletName} not found`).message;\n }\n if (!selectedWallet.features[\"aptos:signIn\"]) {\n throw new WalletNotSupportedMethod(\n `aptos:signIn is not supported by ${walletName}`\n ).message;\n }\n return await this.connectWallet(selectedWallet, async () => {\n if (!selectedWallet.features[\"aptos:signIn\"]) {\n throw new WalletNotSupportedMethod(\n `aptos:signIn is not supported by ${selectedWallet.name}`\n ).message;\n }\n const response = await selectedWallet.features[\"aptos:signIn\"].signIn(input);\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return { account: response.args.account, output: response.args };\n });\n }\n /**\n * Connects a wallet to the dapp.\n * On connect success, we set the current account and the network, and keeping the selected wallet\n * name in LocalStorage to support autoConnect function.\n *\n * @param selectedWallet. The wallet we want to connect.\n * @emit emits \"connect\" event\n * @throws WalletConnectionError\n */\n async connectWallet(selectedWallet, onConnect) {\n try {\n this._connecting = true;\n this.setWallet(selectedWallet);\n const { account, output } = await onConnect();\n this.setAccount(account);\n const network = await selectedWallet.features[\"aptos:network\"].network();\n this.setNetwork(network);\n await this.setAnsName();\n setLocalStorage(selectedWallet.name);\n this._connected = true;\n this.recordEvent(\"wallet_connect\");\n this.emit(\"connect\", account);\n return output;\n } catch (error) {\n this.clearData();\n const errMsg = generalizedErrorMessage(error);\n throw new WalletConnectionError(errMsg).message;\n } finally {\n this._connecting = false;\n }\n }\n /**\n * Disconnect the current connected wallet. On success, we clear the\n * current account, current network and LocalStorage data.\n *\n * @emit emits \"disconnect\" event\n * @throws WalletDisconnectionError\n */\n async disconnect() {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:disconnect\"].disconnect();\n this.clearData();\n this.recordEvent(\"wallet_disconnect\");\n this.emit(\"disconnect\");\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletDisconnectionError(errMsg).message;\n }\n }\n /**\n * Signs and submits a transaction to chain\n *\n * @param transactionInput InputTransactionData\n * @returns AptosSignAndSubmitTransactionOutput\n */\n async signAndSubmitTransaction(transactionInput) {\n try {\n if (\"function\" in transactionInput.data) {\n if (transactionInput.data.function === \"0x1::account::rotate_authentication_key_call\") {\n throw new WalletSignAndSubmitMessageError(\"SCAM SITE DETECTED\").message;\n }\n if (transactionInput.data.function === \"0x1::code::publish_package_txn\") {\n ({\n metadataBytes: transactionInput.data.functionArguments[0],\n byteCode: transactionInput.data.functionArguments[1]\n } = handlePublishPackageTransaction(transactionInput));\n }\n }\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_and_submit_transaction\");\n const shouldUseTxnSubmitter = !!(this._dappConfig?.transactionSubmitter || transactionInput.transactionSubmitter);\n if (this._wallet.features[\"aptos:signAndSubmitTransaction\"] && !shouldUseTxnSubmitter) {\n if (this._wallet.features[\"aptos:signAndSubmitTransaction\"].version !== \"1.1.0\") {\n const aptosConfig2 = getAptosConfig(this._network, this._dappConfig);\n const aptos2 = new import_ts_sdk2.Aptos(aptosConfig2);\n const transaction2 = await aptos2.transaction.build.simple({\n sender: this._account.address.toString(),\n data: transactionInput.data,\n options: transactionInput.options\n });\n const signAndSubmitTransactionMethod = this._wallet.features[\"aptos:signAndSubmitTransaction\"].signAndSubmitTransaction;\n const response3 = await signAndSubmitTransactionMethod(\n transaction2\n );\n if (response3.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response3.args;\n }\n const response2 = await this._wallet.features[\"aptos:signAndSubmitTransaction\"].signAndSubmitTransaction({\n payload: transactionInput.data,\n gasUnitPrice: transactionInput.options?.gasUnitPrice,\n maxGasAmount: transactionInput.options?.maxGasAmount\n });\n if (response2.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response2.args;\n }\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new import_ts_sdk2.Aptos(aptosConfig);\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address.toString(),\n data: transactionInput.data,\n options: transactionInput.options,\n withFeePayer: shouldUseTxnSubmitter\n });\n const signTransactionResponse = await this.signTransaction({\n transactionOrPayload: transaction\n });\n const response = await this.submitTransaction({\n transaction,\n senderAuthenticator: signTransactionResponse.authenticator,\n transactionSubmitter: transactionInput.transactionSubmitter,\n pluginParams: transactionInput.pluginParams\n });\n return { hash: response.hash };\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n /**\n * Signs a transaction\n *\n * This method supports 2 input types -\n * 1. A raw transaction that was already built by the dapp,\n * 2. A transaction data input as JSON. This is for the wallet to be able to simulate before signing\n *\n * @param transactionOrPayload AnyRawTransaction | InputTransactionData\n * @param asFeePayer optional. A flag indicates to sign the transaction as the fee payer\n * @param options optional. Transaction options\n *\n * @returns AccountAuthenticator\n */\n async signTransaction(args) {\n const { transactionOrPayload, asFeePayer } = args;\n try {\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_transaction\");\n if (\"rawTransaction\" in transactionOrPayload) {\n const response = await this._wallet?.features[\"aptos:signTransaction\"].signTransaction(\n transactionOrPayload,\n asFeePayer\n );\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return {\n authenticator: response.args,\n rawTransaction: transactionOrPayload.rawTransaction.bcsToBytes()\n };\n } else if (this._wallet.features[\"aptos:signTransaction\"]?.version === \"1.1.0\") {\n const signTransactionV1_1StandardInput = {\n payload: transactionOrPayload.data,\n expirationTimestamp: transactionOrPayload.options?.expirationTimestamp,\n expirationSecondsFromNow: transactionOrPayload.options?.expirationSecondsFromNow,\n gasUnitPrice: transactionOrPayload.options?.gasUnitPrice,\n maxGasAmount: transactionOrPayload.options?.maxGasAmount,\n sequenceNumber: transactionOrPayload.options?.accountSequenceNumber,\n sender: transactionOrPayload.sender ? { address: import_ts_sdk2.AccountAddress.from(transactionOrPayload.sender) } : void 0\n };\n const walletSignTransactionMethod = this._wallet?.features[\"aptos:signTransaction\"].signTransaction;\n const response = await walletSignTransactionMethod(\n signTransactionV1_1StandardInput\n );\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return {\n authenticator: response.args.authenticator,\n rawTransaction: response.args.rawTransaction.bcsToBytes()\n };\n } else {\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new import_ts_sdk2.Aptos(aptosConfig);\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address,\n data: transactionOrPayload.data,\n options: transactionOrPayload.options,\n withFeePayer: transactionOrPayload.withFeePayer\n });\n const response = await this._wallet?.features[\"aptos:signTransaction\"].signTransaction(\n transaction,\n asFeePayer\n );\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return {\n authenticator: response.args,\n rawTransaction: transaction.bcsToBytes()\n };\n }\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignTransactionError(errMsg).message;\n }\n }\n /**\n * Sign a message (doesnt submit to chain).\n *\n * @param message - AptosSignMessageInput\n *\n * @return response from the wallet's signMessage function\n * @throws WalletSignMessageError\n */\n async signMessage(message) {\n try {\n this.ensureWalletExists(this._wallet);\n this.recordEvent(\"sign_message\");\n const response = await this._wallet?.features[\"aptos:signMessage\"]?.signMessage(message);\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response.args;\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageError(errMsg).message;\n }\n }\n /**\n * Submits transaction to chain\n *\n * @param transaction - InputSubmitTransactionData\n * @returns PendingTransactionResponse\n */\n async submitTransaction(transaction) {\n try {\n this.ensureWalletExists(this._wallet);\n const { additionalSignersAuthenticators } = transaction;\n const transactionType = additionalSignersAuthenticators !== void 0 ? \"multi-agent\" : \"simple\";\n this.recordEvent(\"submit_transaction\", {\n transaction_type: transactionType\n });\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new import_ts_sdk2.Aptos(aptosConfig);\n if (additionalSignersAuthenticators !== void 0) {\n const multiAgentTxn = {\n ...transaction,\n additionalSignersAuthenticators\n };\n return aptos.transaction.submit.multiAgent(multiAgentTxn);\n } else {\n return aptos.transaction.submit.simple(transaction);\n }\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSubmitTransactionError(errMsg).message;\n }\n }\n /**\n Event for when account has changed on the wallet\n @return the new account info\n @throws WalletAccountChangeError\n */\n async onAccountChange() {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:onAccountChange\"]?.onAccountChange(\n async (data) => {\n this.setAccount(data);\n await this.setAnsName();\n this.recordEvent(\"account_change\");\n this.emit(\"accountChange\", this._account);\n }\n );\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletAccountChangeError(errMsg).message;\n }\n }\n /**\n Event for when network has changed on the wallet\n @return the new network info\n @throws WalletNetworkChangeError\n */\n async onNetworkChange() {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:onNetworkChange\"]?.onNetworkChange(\n async (data) => {\n this.setNetwork(data);\n await this.setAnsName();\n this.emit(\"networkChange\", this._network);\n }\n );\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletNetworkChangeError(errMsg).message;\n }\n }\n /**\n * Sends a change network request to the wallet to change the connected network\n *\n * @param network - Network\n * @returns AptosChangeNetworkOutput\n */\n async changeNetwork(network) {\n try {\n this.ensureWalletExists(this._wallet);\n this.recordEvent(\"change_network_request\", {\n from: this._network?.name,\n to: network\n });\n const chainId = network === import_ts_sdk2.Network.DEVNET ? await fetchDevnetChainId() : import_ts_sdk2.NetworkToChainId[network];\n const networkInfo = {\n name: network,\n chainId\n };\n if (this._wallet.features[\"aptos:changeNetwork\"]) {\n const response = await this._wallet.features[\"aptos:changeNetwork\"].changeNetwork(\n networkInfo\n );\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response.args;\n }\n throw new WalletChangeNetworkError(\n `${this._wallet.name} does not support changing network request`\n ).message;\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletChangeNetworkError(errMsg).message;\n }\n }\n /**\n * Signs a message and verifies the signer\n * @param message - AptosSignMessageInput\n * @returns boolean\n */\n async signMessageAndVerify(message) {\n try {\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_message_and_verify\");\n const response = await this._wallet.features[\"aptos:signMessage\"].signMessage(message);\n if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"Failed to sign a message\").message;\n }\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const signingMessage = new TextEncoder().encode(\n response.args.fullMessage\n );\n if (\"verifySignatureAsync\" in this._account.publicKey) {\n return await this._account.publicKey.verifySignatureAsync({\n aptosConfig,\n message: signingMessage,\n signature: response.args.signature,\n options: { throwErrorWithReason: true }\n });\n }\n return this._account.publicKey.verifySignature({\n message: signingMessage,\n signature: response.args.signature\n });\n } catch (error) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n};\n\n// src/index.ts\nif (typeof window !== \"undefined\") {\n window.WALLET_ADAPTER_CORE_VERSION = WALLET_ADAPTER_CORE_VERSION;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n APTOS_CONNECT_ACCOUNT_URL,\n APTOS_CONNECT_BASE_URL,\n ChainIdToAnsSupportedNetworkMap,\n NetworkName,\n WalletCore,\n WalletReadyState,\n aptosStandardSupportedWalletList,\n convertNetwork,\n crossChainStandardSupportedWalletList,\n fetchDevnetChainId,\n generalizedErrorMessage,\n getAptosConfig,\n getAptosConnectWallets,\n getLocalStorage,\n getSDKWallets,\n groupAndSortWallets,\n handlePublishPackageTransaction,\n isAptosConnectWallet,\n isAptosLiveNetwork,\n isAptosNetwork,\n isInAppBrowser,\n isInstallRequired,\n isInstalledOrLoadable,\n isMobile,\n isRedirectable,\n partitionWallets,\n removeLocalStorage,\n setLocalStorage,\n truncateAddress\n});\n"]}