{"version":3,"sources":["/home/runner/work/aptos-wallet-adapter/aptos-wallet-adapter/packages/wallet-adapter-core/dist/index.mjs","../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","../src/index.ts"],"names":["WALLET_ADAPTER_CORE_VERSION","EventEmitter","AccountAddress","Aptos","Network","NetworkToChainId","getAptosWallets","isWalletWithRequiredFeatureSet","UserResponseStatus","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","name","WalletNotReadyError","WalletConnectionError","WalletDisconnectionError","WalletAccountError","WalletGetNetworkError","WalletAccountChangeError","WalletNetworkChangeError","WalletNotConnectedError","WalletSignMessageError","WalletSignMessageAndVerifyError","WalletSignAndSubmitMessageError","WalletSignTransactionError","WalletNotSupportedMethod","WalletChangeNetworkError","WalletSubmitTransactionError","WalletNotFoundError","WalletReadyState","NetworkName","ChainIdToAnsSupportedNetworkMap","APTOS_CONNECT_BASE_URL","APTOS_CONNECT_ACCOUNT_URL","AptosConfig","Hex","NetworkToNodeAPI","isMobile","test","navigator","userAgent","isInAppBrowser","isIphone","isAndroid","isRedirectable","generalizedErrorMessage","getAptosConfig","networkInfo","dappConfig","isAptosNetwork","currentNetwork","convertNetwork","isAptosLiveNetwork","apiKey","aptosApiKeys","network","clientConfig","API_KEY","knownNetworks","okx","url","isKnownNetwork","Object","values","includes","CUSTOM","fullnode","fetchDevnetChainId","aptos","getChainId","handlePublishPackageTransaction","transactionInput","metadataBytes","data","functionArguments","fromHexInput","toUint8Array","byteCode","Array","isArray","map","byte","MAINNET","TESTNET","DEVNET","LOCAL","LOCAL_STORAGE_ITEM_KEY","setLocalStorage","walletName","localStorage","setItem","removeLocalStorage","removeItem","getLocalStorage","getItem","partitionWallets","wallets","partitionFunction","isInstalledOrLoadable","defaultWallets","moreWallets","wallet","readyState","isInstallRequired","isWalletReady","truncateAddress","address","slice","isAptosConnectWallet","startsWith","getAptosConnectWallets","aptosConnectWallets","otherWallets","groupAndSortWallets","options","sortAptosConnectWallets","sort","sortAvailableWallets","sortInstallableWallets","availableWallets","installableWallets","aptosStandardSupportedWalletList","icon","isAIP62Standard","deeplinkProvider","AptosConnectAppleWallet","AptosConnectGoogleWallet","DevTWallet","TWallet","MizuWallet","MSafeWallet","getSDKWallets","sdkWallets","dappId","aptosConnectDappId","aptosConnect","mizuwallet","manifestURL","appId","msafeWalletConfig","WalletCore","optInWallets","disableTelemetry","_wallet","_sdkWallets","_standard_wallets","_standard_not_detected_wallets","_network","_connected","_connecting","_account","_optInWallets","_disableTelemetry","ga4","_dappConfig","fetchExtensionAIP62AptosWallets","fetchSDKAIP62AptosWallets","appendNotDetectedStandardSupportedWallets","aptosWallets","on","setExtensionAIP62Wallets","removeRegisterListener","removeUnregisterListener","extensionwWallets","excludeWallet","filter","item","isValid","index","findIndex","notDetctedWallet","splice","emit","supportedWallet","existingStandardWallet","find","length","recordEvent","eventName","additionalInfo","network_url","adapter_core_version","send_to","ensureWalletExists","ensureAccountExists","account","setAnsName","aptosConfig","chainId","ansName","ans","getPrimaryName","toString","console","log","clearData","setWallet","setAccount","setNetwork","isConnected","notDetectedWallets","connect","selectedWallet","uninstalledWallet","location","allDetectedWallets","encodeURIComponent","href","concat","connectWallet","response","features","status","REJECTED","args","output","signIn","input","onConnect","errMsg","disconnect","signAndSubmitTransaction","transaction","signAndSubmitTransactionMethod","signTransactionResponse","function","version","build","simple","sender","payload","gasUnitPrice","maxGasAmount","signTransaction","transactionOrPayload","submitTransaction","senderAuthenticator","authenticator","hash","asFeePayer","signTransactionV1_1StandardInput","walletSignTransactionMethod","rawTransaction","bcsToBytes","expirationTimestamp","expirationSecondsFromNow","sequenceNumber","accountSequenceNumber","from","signMessage","additionalSignersAuthenticators","transactionType","multiAgentTxn","transaction_type","submit","multiAgent","onAccountChange","onNetworkChange","changeNetwork","to","signMessageAndVerify","signingMessage","TextEncoder","encode","fullMessage","publicKey","verifySignatureAsync","signature","throwErrorWithReason","verifySignature"],"mappings":"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","sourcesContent":["// src/version.ts\nvar WALLET_ADAPTER_CORE_VERSION = \"5.4.0\";\n\n// src/WalletCore.ts\nimport EventEmitter from \"eventemitter3\";\nimport {\n  AccountAddress,\n  Aptos as Aptos2,\n  Network as Network3,\n  NetworkToChainId\n} from \"@aptos-labs/ts-sdk\";\nimport {\n  getAptosWallets,\n  isWalletWithRequiredFeatureSet,\n  UserResponseStatus\n} from \"@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 APTOS_CONNECT_ACCOUNT_URL = \"https://aptosconnect.app/dashboard/main-account\";\n\n// src/utils/helpers.ts\nimport {\n  Aptos,\n  AptosConfig,\n  Hex,\n  Network,\n  NetworkToNodeAPI\n} from \"@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  if (isAptosNetwork(networkInfo)) {\n    const currentNetwork = convertNetwork(networkInfo);\n    if (isAptosLiveNetwork(currentNetwork)) {\n      const apiKey = dappConfig?.aptosApiKeys;\n      return new AptosConfig({\n        network: currentNetwork,\n        clientConfig: { API_KEY: apiKey ? apiKey[currentNetwork] : void 0 }\n      });\n    }\n    return new AptosConfig({\n      network: currentNetwork\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 AptosConfig({\n        network: Network.CUSTOM,\n        fullnode: networkInfo.url\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 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 Aptos();\n  return await aptos.getChainId();\n};\nvar handlePublishPackageTransaction = (transactionInput) => {\n  let metadataBytes = transactionInput.data.functionArguments[0];\n  if (typeof metadataBytes === \"string\") {\n    metadataBytes = 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 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 Network.MAINNET;\n    case \"testnet\":\n      return Network.TESTNET;\n    case \"devnet\":\n      return Network.DEVNET;\n    case \"local\":\n      return 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: \"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: \"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: \"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: \"Rimosafe\",\n    url: \"https://chromewebstore.google.com/detail/rimo-safe-wallet/kiicddjcakdmobjkcpppkgcjbpakcagp\",\n    icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiLz4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCAzKSBzY2FsZSgwLjgpIj4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjkuNTMxMSA5Ljg0MzY5VjBIMTkuNjg3NEwxOS42ODc3IDAuMDAwMzQwNTU1TDAgMC4wMDAzNDE0MTVMNC4zMjEzNGUtMDcgOS44NDQwM0g5Ljg0MzY5QzQuNDA3MTcgOS44NDQwMyAwIDE0LjI1MTIgMCAxOS42ODc3VjMwLjAwMDFIOS44NDM2OVYxOS42ODc5TDE5LjY4NzEgMzAuMDAwMUwxOS42ODcxIDE5LjY4NzdMMjkuNTMwOCA5Ljg0NDAzTDI5LjUzMTEgOS44NDQwM1Y5Ljg0MzY1TDI5LjUzMTEgOS44NDM2OVpNMTkuNjg3MSAxOS42ODc2TDE5LjY4NzEgOS44NDQwM0g5Ljg0MzY5VjE5LjY4NzZIMTkuNjg3MVpNMjkuNTMxMSA5Ljg0MzY1TDE5LjY4NzcgMC4wMDAzNDA1NTVMMjkuNTMxMSAwLjAwMDM0MDEyNVY5Ljg0MzY1Wk0xOS42ODc0IDE5LjY4NzZIMjkuNTMxMVYzMC4wMDAxSDE5LjY4NzRWMTkuNjg3NloiIGZpbGw9IiNGRjVDMjgiLz4KICA8L2c+Cjwvc3ZnPgo=\",\n    readyState: \"NotDetected\" /* NotDetected */,\n    isAIP62Standard: true\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: \"NotDetected\" /* NotDetected */,\n    isAIP62Standard: true\n  }\n];\n\n// src/sdkWallets.ts\nimport {\n  AptosConnectAppleWallet,\n  AptosConnectGoogleWallet\n} from \"@aptos-connect/wallet-adapter-plugin\";\nimport { Network as Network2 } from \"@aptos-labs/ts-sdk\";\nimport { DevTWallet, TWallet } from \"@atomrigslab/aptos-wallet-adapter\";\nimport { MizuWallet } from \"@mizuwallet-sdk/aptos-wallet-adapter\";\nimport { MSafeWallet } from \"@msafe/aptos-aip62-wallet\";\nfunction getSDKWallets(dappConfig) {\n  const sdkWallets = [];\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    if (dappConfig?.mizuwallet && dappConfig?.network && [Network2.MAINNET, Network2.TESTNET].includes(dappConfig.network)) {\n      sdkWallets.push(\n        new MizuWallet({\n          // mizo supports only TESTNET and MAINNET and holds a custom type for network\n          network: dappConfig.network,\n          manifestURL: dappConfig.mizuwallet.manifestURL,\n          appId: dappConfig.mizuwallet.appId\n        })\n      );\n    }\n  }\n  if (dappConfig?.network === Network2.MAINNET) {\n    sdkWallets.push(new TWallet());\n  } else {\n    sdkWallets.push(new DevTWallet());\n  }\n  if (dappConfig?.network) {\n    sdkWallets.push(\n      new MSafeWallet({\n        ...dappConfig?.msafeWalletConfig,\n        network: dappConfig.network\n      })\n    );\n  }\n  return sdkWallets;\n}\n\n// src/WalletCore.ts\nvar WalletCore = class extends EventEmitter {\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 } = 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 } = getAptosWallets();\n      that.setExtensionAIP62Wallets(aptosWallets2);\n    });\n    const removeUnregisterListener = on(\"unregister\", function() {\n      let { aptosWallets: aptosWallets2 } = 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      this._standard_wallets = this._standard_wallets.filter(\n        (item) => item.name !== wallet.name\n      );\n      const isValid = 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        wallet.readyState = \"Installed\" /* Installed */;\n        this._standard_wallets.push(wallet);\n        this.emit(\"standardWalletsAdded\", wallet);\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 = isWalletWithRequiredFeatureSet(wallet);\n      if (isValid) {\n        wallet.readyState = \"Installed\" /* Installed */;\n        this._standard_wallets.push(wallet);\n      }\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  appendNotDetectedStandardSupportedWallets() {\n    aptosStandardSupportedWalletList.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        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 Aptos2(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          const url = encodeURIComponent(window.location.href);\n          const location = uninstalledWallet.deeplinkProvider.concat(url);\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 === 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 === 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      if (this._wallet.features[\"aptos:signAndSubmitTransaction\"]) {\n        if (this._wallet.features[\"aptos:signAndSubmitTransaction\"].version !== \"1.1.0\") {\n          const aptosConfig2 = getAptosConfig(this._network, this._dappConfig);\n          const aptos2 = new Aptos2(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 === 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 === 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 Aptos2(aptosConfig);\n      const transaction = await aptos.transaction.build.simple({\n        sender: this._account.address,\n        data: transactionInput.data,\n        options: transactionInput.options\n      });\n      const signTransactionResponse = await this.signTransaction({\n        transactionOrPayload: transaction\n      });\n      const response = await this.submitTransaction({\n        transaction,\n        senderAuthenticator: signTransactionResponse.authenticator\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 === 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\") {\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: 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 === 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 Aptos2(aptosConfig);\n        const transaction = await aptos.transaction.build.simple({\n          sender: this._account.address,\n          data: transactionOrPayload.data,\n          options: transactionOrPayload.options\n        });\n        const response = await this._wallet?.features[\"aptos:signTransaction\"].signTransaction(\n          transaction,\n          asFeePayer\n        );\n        if (response.status === 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 === 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 Aptos2(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 === Network3.DEVNET ? await fetchDevnetChainId() : 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 === 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 === 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(response.args.fullMessage);\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}\nexport {\n  APTOS_CONNECT_ACCOUNT_URL,\n  APTOS_CONNECT_BASE_URL,\n  ChainIdToAnsSupportedNetworkMap,\n  NetworkName,\n  WalletCore,\n  WalletReadyState,\n  aptosStandardSupportedWalletList,\n  convertNetwork,\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","export const WALLET_ADAPTER_CORE_VERSION = \"5.4.0\";\n","import EventEmitter from \"eventemitter3\";\nimport {\n  AccountAddress,\n  AccountAuthenticator,\n  AnyPublicKey,\n  AnyPublicKeyVariant,\n  AnyRawTransaction,\n  Aptos,\n  Ed25519PublicKey,\n  InputSubmitTransactionData,\n  MultiEd25519PublicKey,\n  MultiEd25519Signature,\n  Network,\n  NetworkToChainId,\n  PendingTransactionResponse,\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} 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 { aptosStandardSupportedWalletList } 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};\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  aptosApiKeys?: Partial<Record<Network, string>>;\n  aptosConnectDappId?: string;\n  aptosConnect?: Omit<AptosConnectWalletConfig, \"network\">;\n  mizuwallet?: {\n    manifestURL: string;\n    appId?: string;\n  };\n  msafeWalletConfig?: {\n    appId?: string;\n    appUrl?: string;\n  };\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      // Remove optional duplications in the _all_wallets array\n      this._standard_wallets = this._standard_wallets.filter(\n        (item) => item.name !== wallet.name\n      );\n\n      const isValid = isWalletWithRequiredFeatureSet(wallet);\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        wallet.readyState = WalletReadyState.Installed;\n        this._standard_wallets.push(wallet);\n        this.emit(\"standardWalletsAdded\", wallet);\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        this._standard_wallets.push(wallet);\n      }\n    });\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    // Loop over the registry map\n    aptosStandardSupportedWalletList.map((supportedWallet) => {\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        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          const url = encodeURIComponent(window.location.href);\n          const location = uninstalledWallet.deeplinkProvider.concat(url);\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      if (this._wallet.features[\"aptos:signAndSubmitTransaction\"]) {\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\n      // 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,\n        data: transactionInput.data,\n        options: transactionInput.options,\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      });\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\"\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        });\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(response.args.fullMessage);\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/** The base URL for all Aptos Connect wallets. */\nexport const APTOS_CONNECT_BASE_URL = \"https://aptosconnect.app\";\n\n/** The URL to the Aptos Connect account page if the user is signed in to Aptos Connect. */\nexport const APTOS_CONNECT_ACCOUNT_URL =\n  \"https://aptosconnect.app/dashboard/main-account\";\n","import {\n  Aptos,\n  AptosConfig,\n  Hex,\n  Network,\n  NetworkToNodeAPI,\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  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      });\n    }\n\n    return new AptosConfig({\n      network: currentNetwork,\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      });\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 { APTOS_CONNECT_BASE_URL, WalletReadyState } 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/** Returns `true` if the provided wallet is an Aptos Connect wallet. */\nexport function isAptosConnectWallet(wallet: WalletInfo | AdapterWallet) {\n  if (!wallet.url) return false;\n  return wallet.url.startsWith(APTOS_CONNECT_BASE_URL);\n}\n\n/**\n * Partitions the `wallets` array so that Aptos Connect wallets are grouped separately from the rest.\n * Aptos Connect is a web wallet that uses social login to create accounts on the blockchain.\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\nexport interface WalletSortingOptions {\n  /** An optional function for sorting Aptos Connect wallets. */\n  sortAptosConnectWallets?: (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` - Wallets that use social login to create accounts on\n * the blockchain via Aptos Connect.\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, otherWallets } = getAptosConnectWallets(wallets);\n  const { defaultWallets, moreWallets } = partitionWallets(otherWallets);\n\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\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","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: \"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: \"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: \"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: \"Rimosafe\",\n      url: \"https://chromewebstore.google.com/detail/rimo-safe-wallet/kiicddjcakdmobjkcpppkgcjbpakcagp\",\n      icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiLz4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCAzKSBzY2FsZSgwLjgpIj4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjkuNTMxMSA5Ljg0MzY5VjBIMTkuNjg3NEwxOS42ODc3IDAuMDAwMzQwNTU1TDAgMC4wMDAzNDE0MTVMNC4zMjEzNGUtMDcgOS44NDQwM0g5Ljg0MzY5QzQuNDA3MTcgOS44NDQwMyAwIDE0LjI1MTIgMCAxOS42ODc3VjMwLjAwMDFIOS44NDM2OVYxOS42ODc5TDE5LjY4NzEgMzAuMDAwMUwxOS42ODcxIDE5LjY4NzdMMjkuNTMwOCA5Ljg0NDAzTDI5LjUzMTEgOS44NDQwM1Y5Ljg0MzY1TDI5LjUzMTEgOS44NDM2OVpNMTkuNjg3MSAxOS42ODc2TDE5LjY4NzEgOS44NDQwM0g5Ljg0MzY5VjE5LjY4NzZIMTkuNjg3MVpNMjkuNTMxMSA5Ljg0MzY1TDE5LjY4NzcgMC4wMDAzNDA1NTVMMjkuNTMxMSAwLjAwMDM0MDEyNVY5Ljg0MzY1Wk0xOS42ODc0IDE5LjY4NzZIMjkuNTMxMVYzMC4wMDAxSDE5LjY4NzRWMTkuNjg3NloiIGZpbGw9IiNGRjVDMjgiLz4KICA8L2c+Cjwvc3ZnPgo=\",\n      readyState: WalletReadyState.NotDetected,\n      isAIP62Standard: true,\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","import {\n  AptosConnectAppleWallet,\n  AptosConnectGoogleWallet,\n} from \"@aptos-connect/wallet-adapter-plugin\";\nimport { Network } from \"@aptos-labs/ts-sdk\";\nimport { DevTWallet, TWallet } from \"@atomrigslab/aptos-wallet-adapter\";\nimport { MizuWallet } from \"@mizuwallet-sdk/aptos-wallet-adapter\";\nimport { MSafeWallet } from \"@msafe/aptos-aip62-wallet\";\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    if (\n      dappConfig?.mizuwallet &&\n      dappConfig?.network &&\n      [Network.MAINNET, Network.TESTNET].includes(dappConfig.network)\n    ) {\n      sdkWallets.push(\n        new MizuWallet({\n          // mizo supports only TESTNET and MAINNET and holds a custom type for network\n          network: dappConfig.network as Network.MAINNET | Network.TESTNET,\n          manifestURL: dappConfig.mizuwallet.manifestURL,\n          appId: dappConfig.mizuwallet.appId,\n        })\n      );\n    }\n  }\n\n  // Push production wallet if env is production, otherwise use dev wallet\n  if (dappConfig?.network === Network.MAINNET) {\n    // TODO twallet uses @aptos-labs/wallet-standard at version 0.0.11 while adapter uses\n    // a newer version (0.1.0) - this causes type mismatch. We should figure out how to handle it.\n    sdkWallets.push(new TWallet() as any);\n  } else {\n    sdkWallets.push(new DevTWallet() as any);\n  }\n\n  if (dappConfig?.network) {\n    sdkWallets.push(\n      new MSafeWallet({\n        ...dappConfig?.msafeWalletConfig,\n        network: dappConfig.network,\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","import { WALLET_ADAPTER_CORE_VERSION } from \"./version\";\n\nexport type {\n  AptosSignInOutput,\n  AptosSignInInput,\n  AptosSignInRequiredFields,\n} from \"@aptos-labs/wallet-standard\";\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"]}