{
  "version": 3,
  "sources": ["../../src/utils/theme.ts", "../../src/utils/deepEqual.ts", "../../src/actions/getAccount.ts", "../../src/actions/watchAccount.ts", "../../src/hooks/useSyncExternalStoreWithTracked.ts", "../../src/hooks/useAccount.ts", "../../src/hooks/useLocales.ts", "../../src/hooks/useModalError.ts", "../../src/hooks/useModalState.ts", "../../src/pages/index.ts", "../../src/hooks/useRouteState.ts", "../../src/hooks/useRouter.ts", "../../src/components/connectModal/index.tsx", "../../src/utils/index.ts", "../../src/styles/themes/dark.ts", "../../src/styles/themes/light.ts", "../../src/styles/themes/index.ts", "../../src/styles/index.ts", "../../src/hooks/useAAPlugin.ts", "../../src/actions/getConnections.ts", "../../src/actions/watchConnections.ts", "../../src/hooks/useConnections.ts", "../../src/config/wallet.tsx", "../../src/actions/filterConnectors.ts", "../../src/actions/reconnect.ts", "../../src/utils/hydrate.ts", "../../src/context/modalProvider/index.tsx", "../../src/actions/getSolanaWalletClient.ts", "../../src/actions/getConnectorClient.ts", "../../src/actions/getWalletClient.ts", "../../src/actions/mapWalletClient.ts", "../../src/hooks/useMutation.ts", "../../src/context/web3Provider/index.tsx", "../../src/context/index.tsx", "../../src/hooks/useAppearance.ts", "../../src/hooks/useIconColor.ts", "../../src/assets/wallets/Trust.tsx"],
  "sourcesContent": ["export function getSystemMode() {\n  if (typeof window !== 'undefined' && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n    return 'dark';\n  } else {\n    return 'light';\n  }\n}\n", "/** Forked from https://github.com/epoberezkin/fast-deep-equal */\n\nexport function deepEqual(a: any, b: any) {\n  if (a === b) return true;\n\n  if (a && b && typeof a === 'object' && typeof b === 'object') {\n    if (a.constructor !== b.constructor) return false;\n\n    let length: number;\n    let i: number;\n\n    if (Array.isArray(a) && Array.isArray(b)) {\n      length = a.length;\n      if (length !== b.length) return false;\n      for (i = length; i-- !== 0; ) if (!deepEqual(a[i], b[i])) return false;\n      return true;\n    }\n\n    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n    const keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) return false;\n\n    for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(b, keys[i]!)) return false;\n\n    for (i = length; i-- !== 0; ) {\n      const key = keys[i];\n\n      if (key && !deepEqual(a[key], b[key])) return false;\n    }\n\n    return true;\n  }\n\n  // true if both NaN, false otherwise\n  // biome-ignore lint/suspicious/noSelfCompare: <explanation>\n  return a !== a && b !== b;\n}\n", "import type { Connector, State } from '@particle-network/connector-core';\nimport { checksumAddress, isAddress, type Address, type Chain } from 'viem';\nimport type { Config } from '../createConfig';\nimport { deepEqual } from '../utils/deepEqual';\n\nexport type GetAccountReturnType =\n  | {\n      address: string;\n      addresses: readonly [string, ...string[]];\n      chain: Chain | undefined;\n      chainId: number;\n      connector: Connector;\n      isConnected: true;\n      isConnecting: false;\n      isDisconnected: false;\n      isReconnecting: false;\n      status: 'connected';\n    }\n  | {\n      address: string | undefined;\n      addresses: readonly string[] | undefined;\n      chain: Chain | undefined;\n      chainId: number | undefined;\n      connector: Connector | undefined;\n      isConnected: boolean;\n      isConnecting: false;\n      isDisconnected: false;\n      isReconnecting: true;\n      status: 'reconnecting';\n    }\n  | {\n      address: string | undefined;\n      addresses: readonly string[] | undefined;\n      chain: Chain | undefined;\n      chainId: number | undefined;\n      connector: Connector | undefined;\n      isConnected: false;\n      isReconnecting: false;\n      isConnecting: true;\n      isDisconnected: false;\n      status: 'connecting';\n    }\n  | {\n      address: undefined;\n      addresses: undefined;\n      chain: undefined;\n      chainId: undefined;\n      connector: undefined;\n      isConnected: false;\n      isReconnecting: false;\n      isConnecting: false;\n      isDisconnected: true;\n      status: 'disconnected';\n    };\n\nlet previousAccount: GetAccountReturnType;\nlet previousState: State;\nexport function getAccount(config: Config): GetAccountReturnType {\n  const state = config.state;\n  if (deepEqual(previousState, state)) return previousAccount;\n\n  const uid = config.state.current!;\n  const connection = config.state.connections.get(uid);\n  let addresses = connection?.accounts;\n  if (addresses?.length && addresses.every((account) => isAddress(account, { strict: false }))) {\n    addresses = addresses.map((item) => checksumAddress(item as Address)) as unknown as readonly [string, ...string[]];\n  }\n  const address = addresses?.[0];\n  const chain = config.chains.find((chain) => chain.id === connection?.chainId) as GetAccountReturnType['chain'];\n  const status = config.state.status;\n\n  let result;\n\n  switch (status) {\n    case 'connected':\n      result = {\n        address: address!,\n        addresses: addresses!,\n        chain,\n        // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n        chainId: connection?.chainId!,\n        // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n        connector: connection?.connector!,\n        isConnected: true,\n        isConnecting: false,\n        isDisconnected: false,\n        isReconnecting: false,\n        status,\n      };\n      break;\n    case 'reconnecting':\n      result = {\n        address,\n        addresses,\n        chain,\n        chainId: connection?.chainId,\n        connector: connection?.connector,\n        isConnected: !!address,\n        isConnecting: false,\n        isDisconnected: false,\n        isReconnecting: true,\n        status,\n      };\n      break;\n    case 'connecting':\n      result = {\n        address,\n        addresses,\n        chain,\n        chainId: connection?.chainId,\n        connector: connection?.connector,\n        isConnected: false,\n        isConnecting: true,\n        isDisconnected: false,\n        isReconnecting: false,\n        status,\n      };\n      break;\n    case 'disconnected':\n      result = {\n        address: undefined,\n        addresses: undefined,\n        chain: undefined,\n        chainId: undefined,\n        connector: undefined,\n        isConnected: false,\n        isConnecting: false,\n        isDisconnected: true,\n        isReconnecting: false,\n        status,\n      };\n      break;\n  }\n  previousAccount = result;\n  return result;\n}\n", "import { type Config } from '../createConfig';\nimport { deepEqual } from '../utils/deepEqual';\nimport { getAccount, type GetAccountReturnType } from './getAccount';\n\nexport type WatchAccountParameters = {\n  onChange(account: GetAccountReturnType, prevAccount: GetAccountReturnType): void;\n};\n\nexport type WatchAccountReturnType = () => void;\n\nexport function watchAccount(config: Config, parameters: WatchAccountParameters): WatchAccountReturnType {\n  const { onChange } = parameters;\n\n  return config.subscribe(() => getAccount(config), onChange, {\n    equalityFn(a, b) {\n      const { connector: aConnector, ...aRest } = a;\n      const { connector: bConnector, ...bRest } = b;\n      return (\n        deepEqual(aRest, bRest) &&\n        // check connector separately\n        aConnector?.id === bConnector?.id &&\n        aConnector?.uid === bConnector?.uid\n      );\n    },\n  });\n}\n", "import { useRef } from 'react';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector.js';\nimport { deepEqual } from '../utils/deepEqual';\n\nconst isPlainObject = (obj: unknown) => typeof obj === 'object' && !Array.isArray(obj);\n\nexport function useSyncExternalStoreWithTracked<snapshot extends selection, selection = snapshot>(\n  subscribe: (onStoreChange: () => void) => () => void,\n  getSnapshot: () => snapshot,\n  getServerSnapshot: undefined | null | (() => snapshot) = getSnapshot,\n  isEqual: (a: selection, b: selection) => boolean = deepEqual\n) {\n  const trackedKeys = useRef<string[]>([]);\n  const result = useSyncExternalStoreWithSelector(\n    subscribe,\n    getSnapshot,\n    getServerSnapshot,\n    (x) => x,\n    (a, b) => {\n      if (isPlainObject(a) && isPlainObject(b) && trackedKeys.current.length) {\n        for (const key of trackedKeys.current) {\n          const equal = isEqual((a as { [_a: string]: any })[key], (b as { [_b: string]: any })[key]);\n          if (!equal) return false;\n        }\n        return true;\n      }\n      return isEqual(a, b);\n    }\n  );\n\n  if (isPlainObject(result)) {\n    const trackedResult = { ...result };\n    let properties = {};\n    for (const [key, value] of Object.entries(trackedResult as { [key: string]: any })) {\n      properties = {\n        ...properties,\n        [key]: {\n          configurable: false,\n          enumerable: true,\n          get: () => {\n            if (!trackedKeys.current.includes(key)) {\n              trackedKeys.current.push(key);\n            }\n            return value;\n          },\n        },\n      };\n    }\n    Object.defineProperties(trackedResult, properties);\n    return trackedResult;\n  }\n\n  return result;\n}\n", "import { getAccount, type GetAccountReturnType } from '../actions/getAccount';\nimport { watchAccount } from '../actions/watchAccount';\nimport { useContext } from '../context';\nimport { useSyncExternalStoreWithTracked } from './useSyncExternalStoreWithTracked';\n\nexport function useAccount(): GetAccountReturnType {\n  const { config } = useContext();\n\n  return useSyncExternalStoreWithTracked(\n    (onChange) => watchAccount(config, { onChange }),\n    () => getAccount(config)\n  );\n}\n", "import { useMemo } from 'react';\nimport { getLocale, type TransactionType } from '../locales';\nimport { useAppearance } from './useAppearance';\n\nexport default function useLocales() {\n  const { appearance } = useAppearance();\n\n  const language = useMemo(() => {\n    return appearance?.language ?? 'en-US';\n  }, [appearance.language]);\n\n  const overrideLocales = useMemo(() => {\n    return appearance.overrideLocales;\n  }, [appearance.overrideLocales]);\n\n  const translations: TransactionType = useMemo(() => {\n    const locales = getLocale(language);\n    const overrideLanguage = overrideLocales?.[language];\n    return { ...locales, ...overrideLanguage };\n  }, [language, overrideLocales]);\n\n  if (!translations) {\n    throw new Error(`Missing translations for ${language}`);\n  }\n\n  return translations;\n}\n", "import { create } from 'zustand';\n\ntype State = {\n  error?: string;\n};\n\ntype Actions = {\n  showError: (error: string) => void;\n  hideError: () => void;\n};\n\nexport const useModalError = create<State & Actions>((set) => ({\n  showError: (value) => {\n    set({ error: value });\n  },\n  hideError: () => {\n    set({ error: undefined });\n  },\n}));\n", "import { create } from 'zustand';\n\ntype State = {\n  open: boolean;\n};\n\ntype Actions = {\n  setOpen: (value: boolean) => void;\n};\n\nexport const useModalState = create<State & Actions>((set) => ({\n  open: false,\n  setOpen: (value) => set({ open: value }),\n}));\n", "import type { FC } from 'react';\nimport { lazy } from 'react';\nimport type { TransactionKey } from '../locales';\n\nconst Captcha = lazy(() => import('./captcha'));\nconst Connecting = lazy(() => import('./connecting'));\nconst Connectors = lazy(() => import('./connectors'));\nconst DownloadApp = lazy(() => import('./downloadApp'));\nconst LoginPasskey = lazy(() => import('./loginPasskey'));\nconst PasskeySetup = lazy(() => import('./passkeySetup'));\nconst Receive = lazy(() => import('./receive'));\nconst SelectChain = lazy(() => import('./selectChain'));\nconst Signup = lazy(() => import('./signup'));\nconst WalletInfo = lazy(() => import('./walletInfo'));\nconst WalletInfoTitle = lazy(() => import('./walletInfo/title'));\nconst Walletconnect = lazy(() => import('./walletconnect'));\n\nexport enum RoutePath {\n  Signup = 'signup',\n  Connectors = 'connectors',\n  Captcha = 'captcha',\n  Connecting = 'connecting',\n  DownloadApp = 'download-app',\n  SelectChain = 'select-chain',\n  Walletconnect = 'walletconnect',\n  WalletInfo = 'wallet-info',\n  Receive = 'receive',\n  PasskeySetup = 'passkey-setup',\n  LoginPasskey = 'login-passkey',\n}\n\nexport const safeRoutes = {\n  connected: [RoutePath.WalletInfo, RoutePath.Receive],\n  disconnected: [\n    RoutePath.Signup,\n    RoutePath.Connectors,\n    RoutePath.Captcha,\n    RoutePath.Connecting,\n    RoutePath.DownloadApp,\n    RoutePath.SelectChain,\n    RoutePath.Walletconnect,\n    RoutePath.PasskeySetup,\n    RoutePath.LoginPasskey,\n  ],\n};\n\nexport const allRoutes = [...safeRoutes.connected, ...safeRoutes.disconnected] as const;\n\nexport interface IPage {\n  title?: TransactionKey | FC;\n  path: RoutePath;\n  element: FC<any>;\n}\n\nexport const pages: IPage[] = [\n  {\n    title: 'signupTitle',\n    path: RoutePath.Signup,\n    element: Signup,\n  },\n  {\n    title: 'connectorsTitle',\n    path: RoutePath.Connectors,\n    element: Connectors,\n  },\n  {\n    title: 'captchaTitle',\n    path: RoutePath.Captcha,\n    element: Captcha,\n  },\n  {\n    path: RoutePath.Connecting,\n    element: Connecting,\n  },\n  {\n    path: RoutePath.DownloadApp,\n    element: DownloadApp,\n  },\n  {\n    title: 'scanWithPhone',\n    path: RoutePath.Walletconnect,\n    element: Walletconnect,\n  },\n  {\n    title: 'selectChainTitle',\n    path: RoutePath.SelectChain,\n    element: SelectChain,\n  },\n  {\n    title: WalletInfoTitle,\n    path: RoutePath.WalletInfo,\n    element: WalletInfo,\n  },\n  {\n    title: 'receive',\n    path: RoutePath.Receive,\n    element: Receive,\n  },\n  {\n    title: 'setupPasskey',\n    path: RoutePath.PasskeySetup,\n    element: PasskeySetup,\n  },\n  {\n    title: 'usePasskeyToLogin',\n    path: RoutePath.LoginPasskey,\n    element: LoginPasskey,\n  },\n] as const;\n\nexport const getPage = (path: RoutePath): IPage => {\n  const page = pages.find((item) => item.path === path);\n  if (!page) {\n    throw new Error('route path undefined');\n  }\n\n  return page;\n};\n", "import { create } from 'zustand';\nimport type { Route } from '../context/types';\nimport { RoutePath } from '../pages';\n\ntype State = {\n  route: Route;\n};\n\ntype Actions = {\n  setRoute: (value: Route | RoutePath) => void;\n};\n\nconst initialState = { path: RoutePath.Signup };\n\nexport const useRouteState = create<State & Actions>((set) => ({\n  route: initialState,\n  setRoute: (value) => {\n    if (typeof value === 'string') {\n      set({\n        route: {\n          path: value,\n        },\n      });\n    } else {\n      set({ route: value });\n    }\n  },\n}));\n", "import { useCallback } from 'react';\nimport { RoutePath, allRoutes, safeRoutes } from '../pages';\nimport { useAccount } from './useAccount';\nimport { useModalState } from './useModalState';\nimport { useRouteState } from './useRouteState';\n\nexport const useRouter = () => {\n  const { setOpen, open } = useModalState();\n  const setRoute = useRouteState((state) => state.setRoute);\n  const { isConnected } = useAccount();\n\n  const navigate = (route: RoutePath, state?: object) => {\n    let validRoute = route;\n    if (!allRoutes.includes(route)) {\n      validRoute = isConnected ? RoutePath.WalletInfo : RoutePath.Signup;\n      console.log(`Route ${route} is not a valid route, navigating to ${validRoute} instead.`);\n    }\n\n    if (isConnected) {\n      if (!safeRoutes.connected.includes(route)) {\n        validRoute = RoutePath.WalletInfo;\n        console.log(`Route ${route} is not a valid route when connected, navigating to ${validRoute} instead.`);\n      }\n    } else {\n      if (!safeRoutes.disconnected.includes(route)) {\n        validRoute = RoutePath.Signup;\n        console.log(`Route ${route} is not a valid route when disconnected, navigating to ${validRoute} instead.`);\n      }\n    }\n    if (!open) {\n      setOpen(true);\n    }\n    setRoute({ path: validRoute, state });\n  };\n\n  const close = useCallback(() => {\n    setOpen(false);\n  }, [setOpen]);\n\n  return {\n    navigate,\n    close,\n    isOpen: open,\n  };\n};\n", "import { lazy, useCallback, useEffect, useMemo } from 'react';\nimport { useAccount } from '../../hooks/useAccount';\nimport useLocales from '../../hooks/useLocales';\nimport { useModalError } from '../../hooks/useModalError';\nimport { useModalState } from '../../hooks/useModalState';\nimport { useRouteState } from '../../hooks/useRouteState';\nimport { useRouter } from '../../hooks/useRouter';\nimport { RoutePath, getPage } from '../../pages';\n\nconst Modal = lazy(() => import('../modal'));\n\nconst ConnectModal = () => {\n  const { setOpen, open } = useModalState();\n  const { route } = useRouteState();\n  const { navigate } = useRouter();\n  const locales = useLocales();\n  const { hideError } = useModalError();\n\n  const { isConnected } = useAccount();\n\n  useEffect(() => {\n    setOpen(false);\n  }, [isConnected, setOpen]);\n\n  useEffect(() => {\n    hideError();\n  }, [route, hideError]);\n\n  const {\n    element: PageElement,\n    title,\n    state,\n  } = useMemo(() => {\n    const page = getPage(route.path);\n    return { ...page, state: route.state };\n  }, [route]);\n\n  const onClose = useCallback(() => {\n    setOpen(false);\n  }, [setOpen]);\n\n  const onBack = useCallback(() => {\n    navigate(RoutePath.Signup);\n  }, [navigate]);\n\n  const isCanBack = useMemo(() => route.path !== RoutePath.Signup && route.path !== RoutePath.WalletInfo, [route.path]);\n\n  return (\n    <Modal\n      open={open}\n      onClose={onClose}\n      title={typeof title === 'string' ? locales[title] : title}\n      onBack={isCanBack ? onBack : undefined}\n    >\n      <PageElement {...state} />\n    </Modal>\n  );\n};\n\nexport default ConnectModal;\n", "import { detect } from 'detect-browser';\nimport type { RefObject } from 'react';\nimport { formatUnits } from 'viem/utils';\nimport type { WalletProps } from '../hooks/useWalletsProps';\n\nconst truncateRegex = /^(0x[a-zA-Z0-9]{4})[a-zA-Z0-9]+([a-zA-Z0-9]{4})$/;\n\nexport const defaultTokenIcon = 'https://static.particle.network/token-list/defaultToken/default.png';\n\ninterface ElementDimensions {\n  width: number;\n  height: number;\n  topDistance: number;\n  bottomDistance: number;\n}\n\nconst truncateEthAddress = (address?: string, separator = '\u2022\u2022\u2022\u2022') => {\n  if (!address) return '';\n  const match = address.match(truncateRegex);\n  if (!match) return address;\n  return `${match[1]}${separator}${match[2]}`;\n};\n\nconst detectBrowser = () => {\n  const browser = detect();\n  return browser?.name ?? '';\n};\nconst detectOS = () => {\n  const browser = detect();\n  return browser?.os ?? '';\n};\n\nconst isIOS = () => {\n  const os = detectOS();\n  return os.toLowerCase().includes('ios');\n};\nconst isAndroid = () => {\n  const os = detectOS();\n  return os.toLowerCase().includes('android');\n};\nconst isMobile = () => {\n  return isAndroid() || isIOS();\n};\n\nexport const isWalletConnectConnector = (connectorId?: string) => connectorId === 'walletConnect';\n\nexport { detectBrowser, detectOS, isAndroid, isIOS, isMobile, truncateEthAddress };\n\nexport const hexToRgba = (hex, alpha) => {\n  let r = 0,\n    g = 0,\n    b = 0;\n  if (hex.length === 4) {\n    r = parseInt(hex[1] + hex[1], 16);\n    g = parseInt(hex[2] + hex[2], 16);\n    b = parseInt(hex[3] + hex[3], 16);\n  } else if (hex.length === 7) {\n    r = parseInt(hex[1] + hex[2], 16);\n    g = parseInt(hex[3] + hex[4], 16);\n    b = parseInt(hex[5] + hex[6], 16);\n  }\n  return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n};\n\nexport const shortAddress = (address: string | undefined | null) => {\n  if (!address) {\n    return '';\n  }\n  if (address.length <= 10) {\n    return address;\n  }\n  return `${address.slice(0, 6)}...${address.slice(-4)}`;\n};\n\n/**\n * Copy text to clipboard\n * @param {string} text\n * @returns {Promise<void>}\n */\nexport async function copyToClipboard(text: string) {\n  const clipboardCopy = async () => {\n    if (navigator.clipboard) {\n      return navigator.clipboard.writeText(text);\n    } else {\n      const textarea = document.createElement('textarea');\n      textarea.value = text;\n      textarea.setAttribute('readonly', '');\n      textarea.style.position = 'absolute';\n      textarea.style.left = '-9999px';\n      document.body.appendChild(textarea);\n\n      textarea.select();\n      const result = document.execCommand('copy');\n\n      document.body.removeChild(textarea);\n\n      if (!result) {\n        throw new Error('Copy to clipboard failed');\n      }\n    }\n  };\n\n  return new Promise((resolve, reject) => {\n    clipboardCopy().then(resolve).catch(reject);\n  });\n}\n\nexport const openMobileUrl = (url: string) => {\n  if (url.startsWith('http')) {\n    const link = document.createElement('a');\n    link.href = url;\n    link.target = '_blank';\n    link.rel = 'noreferrer noopener';\n    link.click();\n  } else {\n    window.location.href = url;\n  }\n};\n\nexport const hasPCDownloadUrl = (walletProps: WalletProps) => {\n  return Boolean(\n    walletProps.downloadUrls?.chrome ||\n      walletProps.downloadUrls?.brave ||\n      walletProps.downloadUrls?.edge ||\n      walletProps.downloadUrls?.firefox ||\n      walletProps.downloadUrls?.safari\n  );\n};\n\n/**\n * \u4EE3\u5E01\u89C4\u5219\uFF1A\n * \u6700\u591A\u4FDD\u7559\u5C0F\u6570\u70B9\u540E9\u4F4D\uFF0C\u53EA\u5C55\u793A\u5230\u6700\u540E\u4E00\u4E2A\u975E\u96F6\u6570\u5B57\u4F4D\u3002\u5F53\u6574\u6570\u4F4D\u8D85\u8FC75\u4F4D\uFF0C\u5C0F\u6570\u540E\u4F4D\u6570\u9010\u6E10\u51CF\u5C11\u3002\u6574\u6570\u4E3A\u8D85\u8FC715\u4F4D\u65F6\uFF0C\u4F7F\u7528\u79D1\u5B66\u8BA1\u6570\u6CD5\uFF0C\u5C0F\u6570\u70B9\u540E\u4E24\u4F4D\n * @param bn\n * @param decimal\n * @param decimalPlaces\n */\nexport const formatTokenAmount = (value: bigint | number | `0x${string}`, decimal: number, decimalPlaces = 9) => {\n  if (!value) return '0';\n  if (typeof value === 'string' || typeof value === 'number') {\n    value = BigInt(value);\n  }\n  let result = formatUnits(value, decimal);\n\n  const [integerPart, decimalPart] = result.split('.');\n  if (decimalPlaces >= 5 && integerPart === '0' && decimalPart?.startsWith(''.padEnd(decimalPlaces, '0'))) {\n    return '<0.'.padEnd(decimalPlaces + 3 - 1, '0') + '1';\n  }\n  result = formatStringNumber(result, decimalPlaces);\n  return result;\n};\n\nfunction formatStringNumber(num: string, n: number): string {\n  let [integerPart, decimalPart] = num.split('.');\n\n  // \u5982\u679C\u6CA1\u6709\u5C0F\u6570\u90E8\u5206\uFF0C\u76F4\u63A5\u8FD4\u56DE\u6574\u6570\u90E8\u5206\n  if (!decimalPart) {\n    return integerPart as string;\n  }\n\n  // \u622A\u53D6\u5C0F\u6570\u90E8\u5206\u7684\u524Dn\u4F4D\n  decimalPart = decimalPart.slice(0, n);\n\n  // \u53BB\u6389\u5C0F\u6570\u90E8\u5206\u672B\u5C3E\u7684\u96F6\n  decimalPart = decimalPart.replace(/0+$/, '');\n\n  // \u5982\u679C\u5C0F\u6570\u90E8\u5206\u5168\u4E3A\u96F6\uFF0C\u8FD4\u56DE\u6574\u6570\u90E8\u5206\n  if (decimalPart === '') {\n    return integerPart as string;\n  }\n\n  return `${integerPart}.${decimalPart}`;\n}\n\nexport function getElementDimensionsRelativeToParent(ref: RefObject<HTMLElement | null>): ElementDimensions | null {\n  if (!ref.current) {\n    return null;\n  }\n\n  const element = ref.current;\n  const parent = element.parentElement;\n\n  if (!parent) {\n    return null;\n  }\n\n  const elementRect = element.getBoundingClientRect();\n  const parentRect = parent.getBoundingClientRect();\n\n  const topDistance = elementRect.top - parentRect.top;\n  const bottomDistance = parentRect.bottom - elementRect.bottom;\n\n  const dimensions = {\n    width: elementRect.width,\n    height: elementRect.height,\n    topDistance: topDistance,\n    bottomDistance: bottomDistance,\n  };\n\n  return dimensions;\n}\n\nexport function getBuyUrl(\n  chainId?: number,\n  address?: string,\n  currency = 'USD',\n  theme = 'light',\n  language = 'en-US'\n): string {\n  const RAMP_WEB_URL = 'https://ramp.particle.network';\n\n  const supportedNetworks: { [key: string]: string[] } = {\n    '1': ['Ethereum', 'ETH'],\n    '10': ['Optimism', 'ETH'],\n    '56': ['Binance Smart Chain', 'BNB'],\n    '101': ['Solana', 'SOL'],\n    '137': ['Polygon', 'MATIC'],\n    '204': ['opBNB', 'BNB'],\n    '324': ['Zksync', 'ETH'],\n    '5000': ['Mantle', 'MNT'],\n    '8453': ['Base', 'ETH'],\n    '42161': ['Arbitrum One', 'ETH'],\n    '42220': ['Celo', 'CELO'],\n    '43114': ['Avalanche', 'AVAX'],\n    '728126428': ['Tron', 'TRX'],\n    // sui TODO\n  };\n\n  if (!chainId || !address || !supportedNetworks[chainId]) {\n    return '';\n  }\n\n  const chainName = supportedNetworks[chainId]?.[0] || '';\n\n  const cryptoCoin = supportedNetworks[chainId]?.[1] || 'ETH';\n\n  const buyParams = {\n    walletAddress: address,\n    fiatCoin: currency,\n    cryptoCoin: cryptoCoin,\n    chainName: chainName,\n    showBackButton: false,\n    theme: theme,\n    language: language,\n  };\n\n  const queryString = new URLSearchParams(buyParams as any).toString();\n  return `${RAMP_WEB_URL}/?${queryString}`;\n}\n\nexport function popupWindow(url: string, title: string, w: number, h: number): Window | null {\n  const left = screen.width / 2 - w / 2;\n  const top = screen.height / 2 - h / 2;\n  return window.open(\n    url,\n    title,\n    'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=' +\n      w +\n      ', height=' +\n      h +\n      ', top=' +\n      top +\n      ', left=' +\n      left\n  );\n}\n\nexport const roundToEven = (value: number) => {\n  return Math.floor(value / 2) * 2;\n};\n\nexport function hexToRgbaColor(hex, alpha) {\n  if (!hex) {\n    return '';\n  }\n  hex = hex.replace(/^#/, '');\n\n  if (hex.length === 3) {\n    hex = hex\n      .split('')\n      .map((char) => char + char)\n      .join('');\n  }\n\n  if (!/^[0-9A-Fa-f]{6}$/.test(hex)) {\n    throw new Error('Invalid hex color format');\n  }\n\n  if (typeof alpha !== 'number' || alpha < 0 || alpha > 1) {\n    throw new Error('Alpha value must be a number between 0 and 1');\n  }\n\n  const r = parseInt(hex.slice(0, 2), 16);\n  const g = parseInt(hex.slice(2, 4), 16);\n  const b = parseInt(hex.slice(4, 6), 16);\n\n  return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n}\n\n/**\n * Judge whether the user is registering a passkey for the first time\n * @returns {boolean} True if it's the first time, false otherwise\n */\nexport const isFirstRegisterPasskey = () => {\n  return localStorage.getItem('passkeyRegistrationStatus') !== 'completed';\n};\n\n/**\n * Set that the user has completed passkey registration\n */\nexport const setFirstRegisterPasskey = () => {\n  localStorage.setItem('passkeyRegistrationStatus', 'completed');\n};\n", "import type { CustomTheme } from '../../types';\n\nconst darkTheme: CustomTheme = {\n  '--pcm-overlay-background': 'rgba(0,0,0,0.4)',\n  '--pcm-modal-box-shadow': '0px 6px 20px 6px rgba(0, 0, 0, 0.1)',\n  '--pcm-body-background': '#1C1D22',\n  '--pcm-body-background-secondary': '#41424A',\n  '--pcm-body-background-tertiary': '#232529',\n\n  '--pcm-body-color': '#ffffff',\n  '--pcm-body-color-secondary': '#8B8EA1',\n  '--pcm-body-color-tertiary': '#42444B',\n\n  '--pcm-body-action-color': '#808080',\n  '--pcm-button-border-color': '#292B36',\n  '--pcm-accent-color': '#A257FA',\n\n  // button\n  '--pcm-button-font-weight': '500',\n  '--pcm-button-hover-shadow': '0px 2px 4px rgba(255, 255, 255, 0.05)',\n\n  //primary button\n  '--pcm-primary-button-color': '#000000',\n  '--pcm-primary-button-bankground': '#FFFFFF',\n  '--pcm-primary-button-hover-background': '#f5f5f5',\n\n  // secondary button\n  '--pcm-secondary-button-color': '#FFFFFF',\n  '--pcm-secondary-button-bankground': '#41424A',\n  '--pcm-secondary-button-hover-background': '#5A5B66',\n};\n\nexport default darkTheme;\n", "import type { CustomTheme } from '../../types';\n\nconst lightTheme: CustomTheme = {\n  '--pcm-overlay-background': 'rgba(71, 88, 107, 0.24)',\n  '--pcm-modal-box-shadow': '0px 2px 4px rgba(0, 0, 0, 0.1)',\n  '--pcm-body-background': '#ffffff',\n  '--pcm-body-background-secondary': '#EFF0F2',\n  '--pcm-body-background-tertiary': '#F9F9FA',\n\n  '--pcm-body-color': '#181B1E',\n  '--pcm-body-color-secondary': '#8B8EA1',\n  '--pcm-body-color-tertiary': '#DCDFE6',\n\n  '--pcm-body-action-color': '#999999',\n  '--pcm-button-border-color': '#EAECF0',\n  '--pcm-accent-color': '#A257FA',\n\n  // button\n  '--pcm-button-font-weight': '500',\n  '--pcm-button-hover-shadow': '0px 2px 4px rgba(0, 0, 0, 0.05)',\n\n  // primary button\n  '--pcm-primary-button-color': '#ffffff',\n  '--pcm-primary-button-bankground': '#181B1E',\n  '--pcm-primary-button-hover-background': '#353738',\n\n  // secondary button\n  '--pcm-secondary-button-color': '#181B1E',\n  '--pcm-secondary-button-bankground': '#EFF0F2',\n  '--pcm-secondary-button-hover-background': '#D9DBDD',\n};\n\nexport default lightTheme;\n", "import dark from './dark';\nimport light from './light';\n\nconst base = {\n  dark,\n  light,\n};\n\nexport default { base };\n", "import { motion } from 'framer-motion';\nimport { css, styled } from 'styled-components';\nimport type { Appearance } from '../context/types';\nimport type { CustomTheme } from '../types';\nimport { hexToRgba } from '../utils';\nimport { getSystemMode } from '../utils/theme';\nimport predefinedThemes from './themes';\nimport dark from './themes/dark';\nimport light from './themes/light';\n\nexport const getWalletOption = (appearance?: Appearance) => {\n  let theme = appearance?.mode ?? getSystemMode();\n  if (theme === 'auto') {\n    theme = getSystemMode();\n  }\n\n  let themeConfig: any = theme === 'light' ? light : dark;\n  themeConfig = mergeThemes({ ...themeGlobals.default, ...themeConfig }, appearance?.theme || {});\n\n  const walletTheme: any = {};\n  // \u5F3A\u8C03\u8272\n  walletTheme.colorAccent = themeConfig['--pcm-accent-color'];\n\n  // \u4E3B\u8981\u80CC\u666F\u8272\n  walletTheme.colorPrimary = themeConfig['--pcm-body-background'];\n\n  // \u4E3B\u8981\u6587\u5B57\u8272\uFF08\u4F7F\u7528\u4E3B\u6309\u94AE\u6587\u5B57\u8272\uFF09\n  walletTheme.colorOnPrimary = themeConfig['--pcm-primary-button-color'];\n\n  // \u4E3B\u8981\u6309\u94AE\u80CC\u666F\u8272\uFF08\u4F7F\u7528\u666E\u901A\u72B6\u6001\u548C\u60AC\u505C\u72B6\u6001\u989C\u8272\uFF09\n  walletTheme.primaryButtonBackgroundColors = [\n    themeConfig['--pcm-primary-button-bankground'],\n    themeConfig['--pcm-primary-button-hover-background'],\n  ];\n\n  // \u56FE\u6807\u6309\u94AE\u80CC\u666F\u8272\uFF08\u4F7F\u7528\u6B21\u8981\u6309\u94AE\u7684\u666E\u901A\u72B6\u6001\u548C\u60AC\u505C\u72B6\u6001\u989C\u8272\uFF09\n  walletTheme.primaryIconButtonBackgroundColors = [\n    themeConfig['--pcm-accent-color'],\n    themeConfig['--pcm-accent-color'],\n  ];\n\n  // \u56FE\u6807\u6309\u94AE\u6587\u5B57\u8272\n  walletTheme.primaryIconTextColor = themeConfig['--pcm-secondary-button-color'];\n\n  // \u4E3B\u8981\u6309\u94AE\u6587\u5B57\u8272\n  walletTheme.primaryButtonTextColor = themeConfig['--pcm-primary-button-color'];\n\n  // \u53D6\u6D88\u6309\u94AE\u80CC\u666F\u8272\uFF08\u4F7F\u7528\u6B21\u8981\u6309\u94AE\u80CC\u666F\u8272\uFF09\n  walletTheme.cancelButtonBackgroundColor = themeConfig['--pcm-secondary-button-bankground'];\n\n  // \u80CC\u666F\u8272\u6570\u7EC4\n  walletTheme.backgroundColors = [\n    themeConfig['--pcm-body-background-secondary'],\n    [\n      [themeConfig['--pcm-body-background'], themeConfig['--pcm-body-background']],\n      [themeConfig['--pcm-body-background'], themeConfig['--pcm-body-background']],\n    ],\n  ];\n\n  // \u6D88\u606F\u989C\u8272\uFF08\u4F7F\u7528\u6210\u529F\u548C\u9519\u8BEF\u989C\u8272\uFF09\n  walletTheme.messageColors = [themeConfig['--pcm-success-color'], themeConfig['--pcm-error-color']];\n\n  // \u8FB9\u6846\u53D1\u5149\u989C\u8272\n  walletTheme.borderGlowColors = [themeConfig['--pcm-accent-color'], themeConfig['--pcm-body-color']];\n\n  // \u6A21\u6001\u906E\u7F69\u80CC\u666F\u8272\n  walletTheme.modalMaskBackgroundColor = themeConfig['--pcm-overlay-background'];\n\n  // \u5361\u7247\u8FB9\u6846\u5706\u89D2\uFF08\u4F7F\u7528\u4E2D\u7B49\u5706\u89D2\u503C\u5E76\u8F6C\u6362\u4E3A\u6570\u5B57\uFF09\n  walletTheme.cardBorderRadius = parseInt(themeConfig['--pcm-rounded-xl']);\n\n  const options = {\n    themeType: theme,\n    customStyle: {\n      [theme]: walletTheme,\n    },\n    language: appearance?.language,\n  };\n  return options;\n};\n\nconst mergeThemes = (base: any, override: any) => {\n  const result = { ...base };\n  Object.keys(override).forEach((key) => {\n    if (Object.prototype.hasOwnProperty.call(override, key) && override[key] !== '') {\n      result[key] = override[key];\n    }\n  });\n  return result;\n};\n\nexport const getAuthCoreTheme = (appearance?: Appearance) => {\n  let theme = appearance?.mode ?? getSystemMode();\n  if (theme === 'auto') {\n    theme = getSystemMode();\n  }\n\n  let themeConfig: any = theme === 'light' ? light : dark;\n  themeConfig = mergeThemes({ ...themeGlobals.default, ...themeConfig }, appearance?.theme || {});\n\n  const authTheme = {\n    primaryBtnColor: themeConfig['--pcm-primary-button-color'],\n    primaryBtnBackgroundColor: themeConfig['--pcm-primary-button-bankground'],\n    // secondaryBtnColor: themeConfig['--pcm-secondary-button-color'],\n    // secondaryBtnBackgroundColor: themeConfig['--pcm-secondary-button-bankground'],\n    textColor: themeConfig['--pcm-body-color'],\n    secondaryTextColor: themeConfig['--pcm-body-color-secondary'],\n    themeBackgroundColor: themeConfig['--pcm-body-background'],\n    iconBorderColor: themeConfig['--pcm-button-border-color'],\n    accentColor: themeConfig['--pcm-accent-color'],\n    inputBackgroundColor: themeConfig['--pcm-body-background-secondary'],\n    inputBorderColor: themeConfig['--pcm-button-border-color'],\n    inputPlaceholderColor: themeConfig['--pcm-body-color-tertiary'],\n    cardBorderColor: themeConfig['--pcm-button-border-color'],\n    cardUnclickableBackgroundColor: themeConfig['--pcm-body-background-tertiary'],\n    cardUnclickableBorderColor: themeConfig['--pcm-button-border-color'],\n    cardDividerColor: themeConfig['--pcm-button-border-color'],\n    tagBackgroundColor: themeConfig['--pcm-body-background-secondary'],\n    modalBackgroundColor: themeConfig['--pcm-body-background'],\n    tipsBackgroundColor: themeConfig['--pcm-body-background-secondary'],\n    primaryBtnBorderRadius: themeConfig['--pcm-rounded-lg'],\n    cardBorderRadius: themeConfig['--pcm-rounded-md'],\n    modalBorderRadius: themeConfig['--pcm-rounded-lg'],\n  };\n  return authTheme;\n};\n\n/**\n * Theme variables for the modal\n */\nexport const themeGlobals = {\n  default: {\n    '--pcm-font-family': `-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica,\n    'Apple Color Emoji', Arial, sans-serif, 'Segoe UI Emoji',\n    'Segoe UI Symbol'`,\n    '--pcm-overlay-backdrop-filter': 'blur(6px)',\n    '--pcm-rounded-sm': '4px',\n    '--pcm-rounded-md': '8px',\n    '--pcm-rounded-lg': '11px',\n    '--pcm-rounded-xl': '22px',\n    '--pcm-rounded-full': '9999px',\n    '--pcm-error-color': '#EA4335',\n    '--pcm-error-background': hexToRgba('#EA4335', 0.2),\n    '--pcm-success-color': '#58C08F',\n    '--pcm-success-background': hexToRgba('#58C08F', 0.2),\n    '--pcm-warning-color': '#F59E0A',\n    '--pcm-warning-background': hexToRgba('#F59E0A', 0.2),\n    '--pcm-wallet-lable-color': '#33C759',\n    '--pcm-wallet-lable-background': hexToRgba('#33C759', 0.2),\n  },\n};\n\nconst themeColors = {\n  light: predefinedThemes.base.light,\n  dark: predefinedThemes.base.dark,\n};\n\nconst createCssVars = (\n  scheme: {\n    [key: string]: string;\n  },\n  override?: boolean\n) => {\n  const important = override ? ' !important' : '';\n  return css`\n    ${Object.keys(scheme).map((key) => {\n      const value = scheme[key];\n      return value && `${key}:${value}${important};`;\n    })}\n  `;\n};\n\nconst themes = {\n  default: createCssVars(themeGlobals.default),\n  light: createCssVars(themeColors.light),\n  dark: createCssVars(themeColors.dark),\n};\n\nlet mode = 'auto';\nexport const ThemeContainer = styled(motion.div)<{\n  $useMode?: string;\n  $useTheme?: CustomTheme;\n}>`\n  ${themes.default}\n\n  ${(props) => {\n    if (props.$useMode === 'light') {\n      mode = 'light';\n      return themes.light;\n    } else if (props.$useMode === 'dark') {\n      mode = 'dark';\n      return themes.dark;\n    } else {\n      return css`\n        @media (prefers-color-scheme: light) {\n          ${themes.light}\n        }\n        @media (prefers-color-scheme: dark) {\n          ${themes.dark}\n        }\n      `;\n    }\n  }}\n  \n\n  ${(props) => {\n    if (props.$useTheme) {\n      return createCssVars(props.$useTheme, true);\n    }\n    return undefined;\n  }}\n\n\n  ${(props) => {\n    if (props.$useTheme) {\n      const merge = {};\n      if (props.$useTheme['--pcm-success-color']) {\n        merge['--pcm-success-background'] = hexToRgba(props.$useTheme['--pcm-success-color'], 0.2);\n      }\n\n      if (props.$useTheme['--pcm-warning-color']) {\n        merge['--pcm-warning-background'] = hexToRgba(props.$useTheme['--pcm-warning-color'], 0.2);\n      }\n\n      if (props.$useTheme['--pcm-error-color']) {\n        merge['--pcm-error-background'] = hexToRgba(props.$useTheme['--pcm-error-color'], 0.2);\n      }\n\n      if (props.$useTheme['--pcm-wallet-lable-color']) {\n        merge['--pcm-wallet-lable-background'] = hexToRgba(props.$useTheme['--pcm-wallet-lable-color'], 0.2);\n      }\n\n      return createCssVars(merge, true);\n    }\n    return undefined;\n  }}\n\n\n  all: initial;\n  text-align: left;\n  text-direction: ltr;\n  text-rendering: optimizeLegibility;\n  -webkit-font-smoothing: auto;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n  -webkit-text-stroke: 0.001px transparent;\n  text-size-adjust: none;\n  font-size: 16px;\n  color: var(--pcm-body-color);\n\n  &,\n  * {\n    font-family: var(--pcm-font-family);\n    box-sizing: border-box;\n\n    &:after,\n    &:before {\n      box-sizing: border-box;\n      border: 0 solid #e5e7eb;\n    }\n  }\n\n  img,\n  svg {\n    max-width: 100%;\n    overflow: visible;\n  }\n  strong {\n    font-weight: 600;\n  }\n  input:focus-visible,\n  a:focus-visible,\n  button:focus-visible {\n    outline: 1px solid var(--pcm-focus-color, var(--pcm-accent-color));\n  }\n\n  input {\n    caret-color: var(--pcm-focus-color, var(--pcm-accent-color));\n  }\n\n  @keyframes spin {\n    0% {\n      transform: rotate(0deg);\n    }\n    100% {\n      transform: rotate(360deg);\n    }\n  }\n`;\n", "import type { SmartAccount } from '@particle-network/aa-plugin';\nimport { create } from 'zustand';\n\ntype State = {\n  smartAccount: SmartAccount | null;\n};\n\ntype Actions = {\n  setSmartAccount: (smartAccount: SmartAccount | null) => void;\n};\n\nexport const useAAPlugin = create<State & Actions>((set) => ({\n  smartAccount: null,\n  setSmartAccount: (value) => {\n    set({ smartAccount: value });\n  },\n}));\n", "import type { Connection, Evaluate } from '@particle-network/connector-core';\nimport type { Config } from '../createConfig';\nimport { deepEqual } from '../utils/deepEqual';\n\nexport type GetConnectionsReturnType = Evaluate<Connection>[];\n\nlet previousConnections: Connection[] = [];\n\nexport function getConnections(config: Config): GetConnectionsReturnType {\n  if (config.state.status === 'reconnecting') return previousConnections;\n\n  const connections = [...config.state.connections.values()];\n  const current = config.state.current;\n  connections.sort((a, b) => {\n    if (a.connector.uid === current) {\n      return -1;\n    }\n\n    if (b.connector.uid === current) {\n      return 1;\n    }\n    return 0;\n  });\n  if (deepEqual(previousConnections, connections)) return previousConnections;\n\n  previousConnections = connections;\n  return connections;\n}\n", "import type { Config } from '../createConfig';\nimport { deepEqual } from '../utils/deepEqual';\nimport { getConnections, type GetConnectionsReturnType } from './getConnections';\n\nexport type WatchConnectionsParameters = {\n  onChange(connections: GetConnectionsReturnType, prevConnections: GetConnectionsReturnType): void;\n};\n\nexport type WatchConnectionsReturnType = () => void;\n\nexport function watchConnections(config: Config, parameters: WatchConnectionsParameters): WatchConnectionsReturnType {\n  const { onChange } = parameters;\n  return config.subscribe(() => getConnections(config), onChange, {\n    equalityFn: deepEqual,\n  });\n}\n", "import { useSyncExternalStore } from 'react';\nimport { getConnections } from '../actions/getConnections';\nimport { watchConnections } from '../actions/watchConnections';\nimport { useContext } from '../context';\n\nexport function useConnections() {\n  const { config } = useContext();\n\n  return useSyncExternalStore(\n    (onChange) => watchConnections(config, { onChange }),\n    () => getConnections(config),\n    () => getConnections(config)\n  );\n}\n", "import PasskeyIcon from '../assets/icons/PasskeyIcon';\nimport BitKeep from '../assets/wallets/BitKeep';\nimport Brave from '../assets/wallets/Brave';\nimport Bybit from '../assets/wallets/Bybit';\nimport Coin98 from '../assets/wallets/Coin98';\nimport Coinbase from '../assets/wallets/Coinbase';\nimport Frontier from '../assets/wallets/Frontier';\nimport ImToken from '../assets/wallets/ImToken';\nimport InfinityWallet from '../assets/wallets/InfinityWallet';\nimport Injected from '../assets/wallets/Injected';\nimport Ledger from '../assets/wallets/Ledger';\nimport MetaMask from '../assets/wallets/MetaMask';\nimport OKX from '../assets/wallets/OKX';\nimport ONTO from '../assets/wallets/ONTO';\nimport Onekey from '../assets/wallets/Onekey';\nimport Phantom from '../assets/wallets/Phantom';\nimport Rabby from '../assets/wallets/Rabby';\nimport Rainbow from '../assets/wallets/Rainbow';\nimport SafePal from '../assets/wallets/SafePal';\nimport Slope from '../assets/wallets/Slope';\nimport Talisman from '../assets/wallets/Talisman';\nimport TokenPocket from '../assets/wallets/TokenPocket';\nimport Trust from '../assets/wallets/Trust';\nimport WalletConnect from '../assets/wallets/WalletConnect';\nimport Zerion from '../assets/wallets/Zerion';\n\nimport React from 'react';\nimport { isAndroid, isIOS } from '../utils';\n\nexport type WalletConfigProps = {\n  // Wallets name\n  name?: string;\n  // Wallets short name. Defaults to `name`\n  shortName?: string;\n  // Icon to display in the modal\n  icon?: React.ReactNode;\n  // Defaults to `'circle'`, but some icons look better as squircle (e.g. if they have a background)\n  iconShape?: 'squircle' | 'circle' | 'square';\n  // Defaults to `false`, but some icons don't have a background and look better if they shrink to fit the container\n  iconShouldShrink?: boolean;\n  // Links to download the wallet\n  downloadUrls?: {\n    // wallet's website\n    website?: string;\n\n    // browser extensions\n    chrome?: string;\n    firefox?: string;\n    brave?: string;\n    edge?: string;\n    safari?: string;\n\n    // app downloads\n    android?: string;\n    ios?: string;\n  };\n  // Create URI for QR code, where uri is encoded data from WalletConnect\n  getWalletConnectDeeplink?: (uri: string) => string;\n\n  // open url in Wallet's browser\n  getDAppBrowserDeeplink?: (url: string) => string;\n};\n\n// Organised in alphabetical order by key\nexport const walletConfigs: {\n  [rdns: string]: WalletConfigProps; // for multiple cases seperate rdns by comma\n} = {\n  'particleEVM, particleSolana, network.particle': {\n    name: 'Particle Auth',\n    iconShape: 'circle',\n  },\n  'coinbaseWallet, coinbaseWalletSDK, com.coinbase.wallet': {\n    name: 'Coinbase Wallet',\n    shortName: 'Coinbase',\n    icon: <Coinbase />,\n    iconShape: 'squircle',\n    downloadUrls: {\n      website: 'https://www.coinbase.com/wallet/getting-started-extension',\n      chrome: 'https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad',\n      brave: 'https://chromewebstore.google.com/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad',\n      android: 'https://play.google.com/store/apps/details?id=org.toshi',\n      ios: 'https://apps.apple.com/app/coinbase-wallet-store-crypto/id1278383455',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return uri;\n    },\n    getDAppBrowserDeeplink: (uri: string) => {\n      return `https://go.cb-w.com/dapp?cb_url=${encodeURIComponent(uri)}`;\n    },\n  },\n  'metaMask, io.metamask, io.metamask.mobile': {\n    name: 'MetaMask',\n    icon: <MetaMask />,\n    iconShouldShrink: true,\n    downloadUrls: {\n      website: 'https://metamask.io/download/',\n      chrome: 'https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn',\n      firefox: 'https://addons.mozilla.org/firefox/addon/ether-metamask/',\n      brave: 'https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn',\n      edge: 'https://microsoftedge.microsoft.com/addons/detail/metamask/ejbalbakoplchlghecdalmeeeajnimhm',\n      android: 'https://play.google.com/store/apps/details?id=io.metamask',\n      ios: 'https://apps.apple.com/app/metamask/id1438144202',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return isAndroid() || isIOS()\n        ? `metamask://wc?uri=${encodeURIComponent(uri)}`\n        : `https://metamask.app.link/wc?uri=${encodeURIComponent(uri)}`;\n    },\n  },\n  'phantom, app.phantom': {\n    name: 'Phantom',\n    iconShape: 'squircle',\n    icon: <Phantom />,\n    downloadUrls: {\n      website: 'https://phantom.app/download',\n      chrome: 'https://chromewebstore.google.com/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa',\n      brave: 'https://chromewebstore.google.com/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa',\n      firefox: 'https://addons.mozilla.org/en-US/firefox/addon/phantom-app/',\n      android: 'https://play.google.com/store/apps/details?id=app.phantom',\n      ios: 'https://apps.apple.com/us/app/phantom-crypto-wallet/id1598432977',\n    },\n    getDAppBrowserDeeplink: (uri: string) => {\n      return `https://phantom.app/ul/browse/${encodeURIComponent(uri)}?ref=${encodeURIComponent(window.location.origin)}`;\n    },\n  },\n  'okxWallet, oKExWallet, com.okex.wallet': {\n    name: 'OKX Wallet',\n    shortName: 'OKX',\n    iconShape: 'squircle',\n    icon: <OKX />,\n    downloadUrls: {\n      website: 'https://www.okx.com/download',\n      chrome:\n        'https://chromewebstore.google.com/detail/%E6%AC%A7%E6%98%93-web3-%E9%92%B1%E5%8C%85/mcohilncbfahbmgdjkbpemcciiolgcge',\n      edge: 'https://microsoftedge.microsoft.com/addons/detail/okx-wallet/pbpjkcldjiffchgbbndmhojiacbgflha',\n      brave:\n        'https://chromewebstore.google.com/detail/%E6%AC%A7%E6%98%93-web3-%E9%92%B1%E5%8C%85/mcohilncbfahbmgdjkbpemcciiolgcge',\n      android: 'https://play.google.com/store/apps/details?id=com.okinc.okex.gp',\n      ios: 'https://apps.apple.com/us/app/okx-buy-bitcoin-btc-crypto/id1327268470',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return `okex://main/wc?uri=${encodeURIComponent(uri)}`;\n    },\n    getDAppBrowserDeeplink: (uri: string) => {\n      const deepLink = `okx://wallet/dapp/url?dappUrl=${encodeURIComponent(uri)}`;\n      return `https://www.okx.com/download?deeplink=${encodeURIComponent(deepLink)}`;\n    },\n  },\n  'bitKeep, bitget, com.bitget.web3': {\n    name: 'Bitget Wallet',\n    shortName: 'Bitget',\n    iconShape: 'circle',\n    icon: <BitKeep />,\n    downloadUrls: {\n      website: 'https://web3.bitget.com/wallet-download',\n      chrome: 'https://chromewebstore.google.com/detail/bitget-wallet-formerly-bi/jiidiaalihmmhddjgbnbgdfflelocpak',\n      android: 'https://play.google.com/store/apps/details?id=com.bitkeep.wallet',\n      ios: 'https://apps.apple.com/us/app/bitget-wallet-ex-bitkeep/id1395301115',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return `bitkeep://wc?uri=${encodeURIComponent(uri)}`;\n    },\n    getDAppBrowserDeeplink: (uri: string) => {\n      return `https://bkcode.vip?action=dapp&url=${encodeURIComponent(uri)}`;\n    },\n  },\n  'rabby, io.rabby': {\n    name: 'Rabby Wallet',\n    shortName: 'Rabby',\n    icon: <Rabby />,\n    downloadUrls: {\n      website: 'https://rabby.io',\n      chrome: 'https://chrome.google.com/webstore/detail/rabby-wallet/acmacodkjbdgmoleebolmdjonilkdbch',\n    },\n  },\n  'rainbow, me.rainbow': {\n    name: 'Rainbow Wallet',\n    shortName: 'Rainbow',\n    icon: <Rainbow />,\n    iconShape: 'squircle',\n    downloadUrls: {\n      website: 'https://rainbow.me/?utm_source=connectkit',\n      chrome: 'https://chrome.google.com/webstore/detail/opfgelmcmbiajamepnmloijbpoleiama',\n      edge: 'https://microsoftedge.microsoft.com/addons/detail/cpojfbodiccabbabgimdeohkkpjfpbnf',\n      firefox: 'https://addons.mozilla.org/firefox/addon/rainbow-extension',\n      brave: 'https://rainbow.me/extension?utm_source=connectkit',\n      android: 'https://play.google.com/store/apps/details?id=me.rainbow',\n      ios: 'https://apps.apple.com/app/id1457119021',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return isAndroid() || isIOS()\n        ? `rainbow://wc?uri=${encodeURIComponent(uri)}&connector=rainbowkit`\n        : `https://rnbwapp.com/wc?uri=${encodeURIComponent(uri)}&connector=rainbowkit`;\n    },\n  },\n  'talisman, xyz.talisman': {\n    name: 'Talisman',\n    shortName: 'Talisman',\n    icon: <Talisman />,\n    iconShape: 'squircle',\n    downloadUrls: {\n      website: 'https://talisman.xyz',\n      chrome: 'https://chrome.google.com/webstore/detail/talisman-polkadot-wallet/fijngjgcjhjmmpcmkeiomlglpeiijkld',\n      firefox: 'https://addons.mozilla.org/en-US/firefox/addon/talisman-wallet-extension/',\n      brave: 'https://chromewebstore.google.com/detail/talisman-ethereum-and-pol/fijngjgcjhjmmpcmkeiomlglpeiijkld',\n    },\n  },\n  'trust, trustWallet, com.trustwallet.app': {\n    name: 'Trust Wallet',\n    shortName: 'Trust',\n    icon: <Trust />,\n    iconShouldShrink: true,\n    downloadUrls: {\n      website: 'https://trustwallet.com/download',\n      chrome: 'https://chromewebstore.google.com/detail/trust-wallet/egjidjbpglichdcondbcbdnbeeppgdph',\n      android: 'https://play.google.com/store/apps/details?id=com.wallet.crypto.trustapp',\n      ios: 'https://apps.apple.com/app/trust-crypto-bitcoin-wallet/id1288339409',\n    },\n    getWalletConnectDeeplink(uri) {\n      return isAndroid() || isIOS()\n        ? `trust://wc?uri=${encodeURIComponent(uri)}`\n        : `https://link.trustwallet.com/wc?uri=${encodeURIComponent(uri)}`;\n    },\n    getDAppBrowserDeeplink: (uri) => {\n      return `https://link.trustwallet.com/open_url?url=${encodeURIComponent(uri)}`;\n    },\n  },\n  'com.crypto.wallet': {\n    name: 'Crypto.com',\n    shortName: 'Crypto',\n  },\n  'frontier, xyz.frontier.wallet': {\n    name: 'Frontier Wallet',\n    shortName: 'Frontier',\n    icon: <Frontier />,\n    downloadUrls: {\n      website: 'https://www.frontier.xyz/download',\n      chrome: 'https://chrome.google.com/webstore/detail/frontier-wallet/kppfdiipphfccemcignhifpjkapfbihd',\n      brave: 'https://chromewebstore.google.com/detail/frontier-wallet/kppfdiipphfccemcignhifpjkapfbihd',\n      android: 'https://play.google.com/store/apps/details?id=com.frontierwallet',\n      ios: 'https://apps.apple.com/app/frontier-crypto-defi-wallet/id1482380988',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return `frontier://wc?uri=${encodeURIComponent(uri)}`;\n    },\n  },\n  infinityWallet: {\n    name: 'Infinity Wallet',\n    icon: <InfinityWallet />,\n    downloadUrls: {\n      website: 'https://infinitywallet.io/download',\n      chrome: 'https://infinitywallet.io/download',\n      firefox: 'https://infinitywallet.io/download',\n      brave: 'https://infinitywallet.io/download',\n      edge: 'https://infinitywallet.io/download',\n    },\n  },\n  imToken: {\n    name: 'imToken',\n    icon: <ImToken />,\n    downloadUrls: {\n      website: 'https://token.im/download',\n      android: 'https://play.google.com/store/apps/details?id=im.token.app',\n      ios: 'https://itunes.apple.com/us/app/imtoken2/id1384798940',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return `imtokenv2://wc?uri=${encodeURIComponent(uri)}`;\n    },\n  },\n  onto: {\n    name: 'ONTO',\n    icon: <ONTO />,\n    downloadUrls: {\n      website: 'https://onto.app/en/download/',\n      chrome: 'https://chromewebstore.google.com/detail/onto-wallet/ifckdpamphokdglkkdomedpdegcjhjdp',\n      ios: 'https://apps.apple.com/app/onto-an-ontology-dapp/id1436009823',\n      android: 'https://play.google.com/store/apps/details?id=com.github.ontio.onto',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return isAndroid() ? uri : `https://onto.app/wc?uri=${encodeURIComponent(uri)}`;\n    },\n  },\n  ledger: {\n    name: 'Ledger Live',\n    shortName: 'Ledger',\n    icon: <Ledger />,\n    downloadUrls: {\n      website: 'https://www.ledger.com/ledger-live/download#download-device-2',\n      android: 'https://play.google.com/store/apps/details?id=com.ledger.live',\n      ios: 'https://apps.apple.com/app/ledger-live-web3-wallet/id1361671700',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return `ledgerlive://wc?uri=${encodeURIComponent(uri)}`;\n    },\n  },\n  'zerion, io.zerion.wallet': {\n    name: 'Zerion',\n    icon: <Zerion />,\n    downloadUrls: {\n      website: 'https://zerion.io/download',\n      chrome: 'https://chromewebstore.google.com/detail/zerion-wallet-for-web3-nf/klghhnkeealcohjjanjjdaeeggmfmlpl',\n      brave: 'https://chromewebstore.google.com/detail/zerion-wallet-for-web3-nf/klghhnkeealcohjjanjjdaeeggmfmlpl',\n      ios: 'https://apps.apple.com/app/apple-store/id1456732565',\n      android: 'https://play.google.com/store/apps/details?id=io.zerion.android',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return isAndroid() || isIOS()\n        ? `zerion://wc?uri=${encodeURIComponent(uri)}`\n        : `https://app.zerion.io/wc?uri=${encodeURIComponent(uri)}`;\n    },\n  },\n  slope: {\n    name: 'Slope',\n    icon: <Slope />,\n    downloadUrls: {\n      website: 'https://slope.finance/',\n      chrome: 'https://chrome.google.com/webstore/detail/slope-wallet/pocmplpaccanhmnllbbkpgfliimjljgo',\n      ios: 'https://apps.apple.com/app/slope-wallet/id1574624530',\n      android: 'https://play.google.com/store/apps/details?id=com.wd.wallet',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return isAndroid() ? uri : `https://slope.finance/app/wc?uri=${encodeURIComponent(uri)}`;\n    },\n  },\n  'tokenPocket, pro.tokenpocket': {\n    name: 'TokenPocket',\n    icon: <TokenPocket />,\n    downloadUrls: {\n      website: 'https://www.tokenpocket.pro/en/download/app',\n      chrome: 'https://chrome.google.com/webstore/detail/tokenpocket/mfgccjchihfkkindfppnaooecgfneiii',\n      android: 'https://play.google.com/store/apps/details?id=vip.mytokenpocket',\n      ios: 'https://apps.apple.com/us/app/tp-global-wallet/id6444625622',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return `tpoutside://wc?uri=${encodeURIComponent(uri)}`;\n    },\n  },\n\n  'safePal, https://www.safepal.com/download': {\n    name: 'SafePal',\n    icon: <SafePal />,\n    iconShape: 'circle',\n    downloadUrls: {\n      website: 'https://www.safepal.com/download',\n      chrome: 'https://chrome.google.com/webstore/detail/lgmpcpglpngdoalbgeoldeajfclnhafa',\n      edge: 'https://microsoftedge.microsoft.com/addons/detail/apenkfbbpmhihehmihndmmcdanacolnh',\n      firefox: 'https://addons.mozilla.org/firefox/addon/safepal-extension-wallet',\n      android: 'https://play.google.com/store/apps/details?id=io.safepal.wallet',\n      ios: 'https://apps.apple.com/app/id1548297139',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return isAndroid() || isIOS()\n        ? `safepalwallet://wc?uri=${encodeURIComponent(uri)}`\n        : `https://link.safepal.io/wc?uri=${encodeURIComponent(uri)}`;\n    },\n  },\n  'coin98, coin98.com': {\n    name: 'Coin98',\n    shortName: 'Coin98',\n    icon: <Coin98 />,\n    iconShape: 'circle',\n    downloadUrls: {\n      website: 'https://coin98.com/wallet',\n      chrome: 'https://chrome.google.com/webstore/detail/aeachknmefphepccionboohckonoeemg',\n      android: 'https://play.google.com/store/apps/details?id=coin98.crypto.finance.media',\n      ios: 'https://apps.apple.com/app/id1561969966',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return isAndroid() || isIOS()\n        ? `coin98://wc?uri=${encodeURIComponent(uri)}`\n        : `https://coin98.com/wc?uri=${encodeURIComponent(uri)}`;\n    },\n  },\n  'onekey, so.onekey.app.wallet': {\n    name: 'OneKey',\n    icon: <Onekey />,\n    iconShape: 'squircle',\n    downloadUrls: {\n      website: 'https://onekey.so/download/',\n      chrome: 'https://chrome.google.com/webstore/detail/jnmbobjmhlngoefaiojfljckilhhlhcj',\n      android: 'https://play.google.com/store/apps/details?id=so.onekey.app.wallet',\n      ios: 'https://apps.apple.com/app/id1609559473',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return isAndroid() || isIOS()\n        ? `onekey-wallet://wc?uri=${encodeURIComponent(uri)}`\n        : `https://app.onekey.so/wc/connect/wc?uri=${encodeURIComponent(uri)}`;\n    },\n  },\n  'bybitWallet, com.bybit': {\n    name: 'Bybit Wallet',\n    icon: <Bybit />,\n    iconShape: 'squircle',\n    downloadUrls: {\n      website: 'https://www.bybit.com/en/download/',\n      chrome: 'https://chrome.google.com/webstore/detail/pdliaogehgdbhbnmkklieghmmjkpigpa',\n      android: 'https://play.google.com/store/apps/details?id=com.bybit.app',\n      ios: 'https://apps.apple.com/app/id1488296980',\n    },\n    getWalletConnectDeeplink: (uri: string) => {\n      return `bybitapp://open/route?targetUrl=by://web3/walletconnect/wc?uri=${encodeURIComponent(uri)}`;\n    },\n  },\n  'braveWallet, com.brave.wallet': {\n    name: 'Brave Wallet',\n    shortName: 'Brave',\n    icon: <Brave />,\n    iconShape: 'squircle',\n    downloadUrls: {\n      website: 'https://brave.com/download/',\n    },\n    getDAppBrowserDeeplink: (uri) => {\n      return `brave://open-url?url=${encodeURIComponent(uri)}`;\n    },\n  },\n  'mantaWallet,manta.network': {\n    name: 'Manta Wallet',\n    iconShape: 'circle',\n  },\n  walletConnect: {\n    name: 'WalletConnect',\n    icon: <WalletConnect />,\n    iconShape: 'square',\n    getWalletConnectDeeplink: (uri: string) => uri,\n  },\n  injected: {\n    name: 'Browser Wallet',\n    shortName: 'Browser',\n    icon: <Injected />,\n  },\n  passkeySmartWallet: {\n    name: 'Passkey Smart Wallet',\n    shortName: 'Passkey',\n    iconShape: 'circle',\n    icon: <PasskeyIcon />,\n  },\n} as const;\n\nexport const isCoinbase = (id: string) => {\n  return ['coinbaseWallet', 'coinbaseWalletSDK', 'com.coinbase.wallet'].includes(id);\n};\n\nexport const isWalletConnect = (id: string) => {\n  return 'walletConnect' === id;\n};\n\nexport const isPasskeySmartWallet = (id: string) => {\n  return 'passkeySmartWallet' === id;\n};\n", "import type { Connector } from '@particle-network/connector-core';\nimport { walletConfigs } from '../config/wallet';\n\nexport const filterConnectors = (connectors: readonly Connector[]) => {\n  return (\n    connectors\n      // remove duplicate ids\n      .filter(\n        (connector, index, self) =>\n          self.findIndex((c) => c.id === connector.id && c.chainType === connector.chainType) === index\n      )\n      // remove wallet when eip-6963 provider discovery\n      .filter((connector, index, self) => {\n        if (connector.chainType === 'solana') {\n          // solana not support eip-6963.\n          return true;\n        }\n\n        const isMipd = connector.id.includes('.');\n        if (isMipd) {\n          return true;\n        }\n\n        const groupId = Object.keys(walletConfigs).find(\n          (id) =>\n            id\n              .split(',')\n              .map((i) => i.trim())\n              .indexOf(connector.id) !== -1\n        );\n\n        if (groupId && groupId.includes(',')) {\n          const mipdIds = groupId\n            .split(',')\n            .map((id) => id.trim())\n            .filter((id) => id.includes('.'));\n\n          const hasMipd = self.find((c) => mipdIds.includes(c.id));\n          return Boolean(!hasMipd);\n        }\n\n        return true;\n      })\n  );\n};\n", "import type { Connection, Connector, ErrorType, Evaluate } from '@particle-network/connector-core';\nimport type { Config } from '../createConfig';\nimport { filterConnectors } from './filterConnectors';\n\nexport type ReconnectParameters = {\n  /** Connectors to attempt reconnect with */\n  connectors?: readonly Connector[] | undefined;\n};\n\nexport type ReconnectReturnType = Evaluate<Connection>[];\n\nexport type ReconnectErrorType = ErrorType;\n\nlet reconnectingConfigUid;\n\nexport async function reconnect(config: Config, parameters: ReconnectParameters = {}): Promise<ReconnectReturnType> {\n  // If already reconnecting, do nothing\n  if (reconnectingConfigUid && reconnectingConfigUid === config.uid) return [];\n  const status = reconnectingConfigUid ? 'reconnecting' : undefined;\n  reconnectingConfigUid = config.uid;\n  config.setState((x) => ({\n    ...x,\n    status: x.current || status ? 'reconnecting' : 'connecting',\n  }));\n\n  const connectors: Connector[] = [];\n  if (parameters.connectors?.length) {\n    connectors.push(...parameters.connectors);\n  } else {\n    // \u8FC7\u6EE4\u91CD\u590D\u7684connector(\u4FDD\u7559EIP6963\u81EA\u52A8\u6CE8\u5165\u7684provider)\n    const configConnectors = config.connectors;\n    connectors.push(...filterConnectors(configConnectors));\n  }\n\n  // Try recently-used connectors first\n  let recentConnectorId: string | null | undefined;\n  try {\n    recentConnectorId = await config.storage?.getItem('recentConnectorId');\n  } catch {\n    // ignore\n  }\n  const scores: Record<string, number> = {};\n  for (const [, connection] of config.state.connections) {\n    scores[connection.connector.id] = 1;\n  }\n  if (recentConnectorId) scores[recentConnectorId] = 0;\n  const sorted =\n    Object.keys(scores).length > 0\n      ? // .toSorted()\n        [...connectors].sort((a, b) => (scores[a.id] ?? 10) - (scores[b.id] ?? 10))\n      : connectors;\n\n  // Iterate through each connector and try to connect\n  let connected = false;\n  const connections: Connection[] = [];\n  const providers: unknown[] = [];\n\n  for (const connector of sorted) {\n    const provider_ = await connector.getProvider().catch(() => undefined);\n    if (!provider_) continue;\n\n    // If we already have an instance of this connector's provider,\n    // then we have already checked it (ie. injected connectors can\n    // share the same `window.ethereum` instance, so we don't want to\n    // connect to it again).\n    if (providers.some((provider) => provider === provider_)) continue;\n\n    const isAuthorized = await connector.isAuthorized();\n    if (!isAuthorized) continue;\n\n    console.log(`reconnect [${connector.id}] start`);\n    const data = await connector.connect({ isReconnecting: true }).catch(() => null);\n    if (!data) continue;\n\n    connector.emitter.off('connect', config._internal.events.connect);\n    connector.emitter.on('change', config._internal.events.change);\n    connector.emitter.on('disconnect', config._internal.events.disconnect);\n\n    console.log(`reconnect [${connector.id}] completed`, data);\n    config.setState((x) => {\n      const connections = new Map(connected ? x.connections : new Map()).set(connector.uid, {\n        accounts: data.accounts,\n        chainId: data.chainId,\n        connector,\n      });\n      return {\n        ...x,\n        current: connected ? x.current : connector.uid,\n        connections,\n      };\n    });\n    connections.push({\n      accounts: data.accounts as readonly [string, ...string[]],\n      chainId: data.chainId,\n      connector,\n    });\n    providers.push(provider_);\n    connected = true;\n  }\n\n  // Prevent overwriting connected status from race condition\n  if (config.state.status === 'reconnecting' || config.state.status === 'connecting') {\n    // If connecting didn't succeed, set to disconnected\n    if (!connected) {\n      config.setState((x) => ({\n        ...x,\n        connections: new Map(),\n        current: null,\n        status: 'disconnected',\n      }));\n    } else {\n      config.setState((x) => ({ ...x, status: 'connected' }));\n    }\n  }\n\n  reconnectingConfigUid = undefined;\n  return connections;\n}\n", "import { reconnect } from '../actions/reconnect';\nimport type { Config } from '../createConfig';\n\ntype HydrateParameters = {\n  reconnectOnMount?: boolean | undefined;\n};\n\nexport function hydrate(config: Config, parameters: HydrateParameters) {\n  const { reconnectOnMount } = parameters;\n\n  return {\n    async onMount() {\n      if (reconnectOnMount) {\n        console.log('reconnect on mount, config.uid = ', config.uid);\n        reconnect(config);\n      } else if (config.storage) {\n        // Reset connections that may have been hydrated from storage.\n        config.setState((x) => ({\n          ...x,\n          connections: new Map(),\n        }));\n      }\n    },\n  };\n}\n", "import type { AAPlugin } from '@particle-network/aa-plugin';\nimport type { Connection } from '@particle-network/connector-core';\nimport type { Plugin } from '@particle-network/plugin-core';\nimport type { WalletPlugin } from '@particle-network/wallet-plugin';\nimport React, { createContext, useEffect, useMemo, useRef } from 'react';\nimport { useContext } from '..';\nimport { useAAPlugin } from '../../hooks/useAAPlugin';\nimport { useAccount } from '../../hooks/useAccount';\nimport { useAppearance } from '../../hooks/useAppearance';\nimport { useConnections } from '../../hooks/useConnections';\nimport { getWalletOption } from '../../styles';\nimport { hydrate } from '../../utils/hydrate';\n\ntype ContextValue = {\n  foo?: string;\n};\n\nexport const ModalContext = createContext<ContextValue | null>(null);\n\ntype Props = {\n  reconnectOnMount: boolean;\n};\n\nlet reconnectConfigUid;\n\n/**\n * manage modal status\n */\nexport const ModalProvider = (props: React.PropsWithChildren<Props>) => {\n  const { reconnectOnMount } = props;\n\n  const { config } = useContext();\n\n  const connections = useConnections();\n\n  const account = useAccount();\n\n  const { appearance } = useAppearance();\n\n  const setSmartAccount = useAAPlugin((state) => state.setSmartAccount);\n\n  const handlePlugin = async (connections: Connection[], plugins: Plugin[]) => {\n    const result = connections.filter((connection) => connection.connector && connection.connector.getProvider);\n    for (const plugin of plugins) {\n      if (result.length) {\n        console.log('Plugin onConnect----id:', plugin.id);\n        await plugin.onConnect?.(result as [Connection]);\n      } else {\n        console.log('Plugin onDisconnect----id:', plugin.id);\n        await plugin.onDisconnect?.();\n      }\n    }\n    const aaPlugin = config.plugins.find((plugin) => plugin.id === 'aa') as AAPlugin;\n    setSmartAccount(aaPlugin?.smartAccount ?? null);\n  };\n\n  useEffect(() => {\n    console.log(\n      `account changed --- status: ${account.status}, address: ${account.address}, \n      chainId: ${account.chainId}, isConnected:${account.isConnected}, isConnecting:${account.isConnecting}, \n      isDisconnected:${account.isDisconnected}, connectorId: ${account.connector?.id}`\n    );\n  }, [account]);\n\n  // --- reconnect\n  const reconnectRef = useRef(false);\n  const { onMount } = hydrate(config, {\n    reconnectOnMount,\n  });\n  if (!reconnectRef.current) {\n    reconnectRef.current = true;\n    reconnectConfigUid = config.uid;\n    onMount();\n  }\n\n  useEffect(() => {\n    if (config.uid !== reconnectConfigUid) {\n      reconnectConfigUid = config.uid;\n      onMount();\n    }\n  }, [config.uid, onMount]);\n\n  const walletPlugin = useMemo(() => {\n    const plugin = config.plugins.find((plugin) => plugin.id === 'wallet');\n    if (plugin) {\n      return plugin as WalletPlugin;\n    }\n    return undefined;\n  }, [config.plugins]);\n\n  useEffect(() => {\n    if (walletPlugin) {\n      console.log('Plugin wallet init');\n      const aaPlugin = config.plugins.find((plugin) => plugin.id === 'aa') as AAPlugin;\n      const erc4337 = aaPlugin ? aaPlugin.erc4337 : undefined;\n      walletPlugin.init({\n        erc4337,\n      });\n    }\n  }, [walletPlugin, config.plugins]);\n\n  useEffect(() => {\n    if (walletPlugin) {\n      const walletOption = getWalletOption(appearance);\n      walletPlugin.overrideWalletOption({\n        ...walletOption,\n        language: appearance.language,\n      });\n    }\n  }, [appearance, walletPlugin]);\n\n  useEffect(() => {\n    handlePlugin(connections, config.plugins);\n  }, [connections, config.plugins]);\n\n  return <ModalContext.Provider value={{}}>{props.children}</ModalContext.Provider>;\n};\n\nexport const useModalContext = () => {\n  const context = React.useContext(ModalContext);\n  if (!context) throw Error('Modal Hook must be inside a Provider.');\n  return context;\n};\n", "import {\n  ChainTypeError,\n  ConnectorAccountNotFoundError,\n  ConnectorNotConnectedError,\n  sendSolanaTransaction,\n  type ChainIdParameter,\n  type Connection,\n  type ConnectorParameter,\n  type Evaluate,\n  type SolanaChain,\n  type SolanaProvider,\n  type SolanaWalletClient,\n} from '@particle-network/connector-core';\nimport type { SendOptions, Transaction, TransactionSignature, VersionedTransaction } from '@solana/web3.js';\nimport type { Config } from '../createConfig';\n\nexport type GetSolanaWalletClientParameters = Evaluate<\n  ChainIdParameter &\n    ConnectorParameter & {\n      account?: string | undefined;\n    }\n>;\n\nexport const getSolanaWalletClient = async (\n  config: Config,\n  parameters: GetSolanaWalletClientParameters = {}\n): Promise<SolanaWalletClient> => {\n  let connection: Connection | undefined;\n  if (parameters.connector) {\n    const { connector } = parameters;\n    const [accounts, chainId] = await Promise.all([connector.getAccounts(), connector.getChainId()]);\n    connection = {\n      accounts: accounts as readonly [string, ...string[]],\n      chainId,\n      connector,\n    };\n  } else connection = config.state.connections.get(config.state.current!);\n  if (!connection) throw new ConnectorNotConnectedError();\n\n  const chainId = parameters.chainId ?? connection.chainId;\n  const connector = connection.connector;\n  if (connector.chainType !== 'solana') {\n    throw new ChainTypeError();\n  }\n\n  const provider = (await connector.getProvider()) as SolanaProvider;\n\n  const account = parameters.account ?? connection.accounts[0];\n  const chain = config.chains.find((chain) => chain.id === chainId);\n\n  const clientConnection = config\n    .getWalletConnector(connector.walletConnectorType)!\n    .getClient<SolanaChain>(chain?.id || 101);\n\n  // if account was provided, check that it exists on the connector\n  if (parameters.account && !connection.accounts.some((x) => x.toLowerCase() === account.toLowerCase()))\n    throw new ConnectorAccountNotFoundError({\n      address: account,\n      connector,\n    });\n\n  return {\n    publicKey: provider.publicKey!,\n    chain: chain!,\n    async signTransaction<T extends Transaction | VersionedTransaction>(transaction: T): Promise<T> {\n      return await provider.signTransaction(transaction);\n    },\n    async signAllTransactions<T extends Transaction | VersionedTransaction>(transactions: T[]): Promise<T[]> {\n      return await provider.signAllTransactions(transactions);\n    },\n    async sendTransaction<T extends Transaction | VersionedTransaction>(\n      transaction: T,\n      options: SendOptions = {}\n    ): Promise<{\n      signature: TransactionSignature;\n    }> {\n      if (connector.walletConnectorType === 'particleAuth') {\n        const result = await provider.signAndSendTransaction!(transaction);\n        return result;\n      }\n\n      return await sendSolanaTransaction(provider, transaction, clientConnection, options);\n    },\n    async signMessage(message: Uint8Array): Promise<{\n      signature: Uint8Array;\n    }> {\n      const { signature } = await provider.signMessage(message);\n      return { signature };\n    },\n    async switchChain(chainId: number) {\n      return await connector.switchChain!({ chainId });\n    },\n  };\n};\n", "import {\n  ChainTypeError,\n  ConnectorAccountNotFoundError,\n  ConnectorNotConnectedError,\n  type ChainIdParameter,\n  type Connection,\n  type ConnectorAccountNotFoundErrorType,\n  type ConnectorNotConnectedErrorType,\n  type ConnectorParameter,\n  type ErrorType,\n  type Evaluate,\n} from '@particle-network/connector-core';\nimport {\n  createClient,\n  custom,\n  type Account,\n  type Address,\n  type BaseErrorType,\n  type Chain,\n  type Client,\n  type Transport,\n} from 'viem';\nimport { getAddress, parseAccount } from 'viem/utils';\nimport type { Config } from '../createConfig';\n\nexport type GetConnectorClientParameters = Evaluate<\n  ChainIdParameter &\n    ConnectorParameter & {\n      account?: Address | Account | undefined;\n    }\n>;\n\nexport type GetConnectorClientReturnType = Evaluate<Client<Transport, Chain, Account>>;\n\nexport type GetConnectorClientErrorType =\n  | ConnectorAccountNotFoundErrorType\n  | ConnectorNotConnectedErrorType\n  // base\n  | BaseErrorType\n  | ErrorType;\n\nexport async function getConnectorClient(\n  config: Config,\n  parameters: GetConnectorClientParameters = {}\n): Promise<GetConnectorClientReturnType> {\n  // Get connection\n  let connection: Connection | undefined;\n  if (parameters.connector) {\n    const { connector } = parameters;\n    const [accounts, chainId] = await Promise.all([connector.getAccounts(), connector.getChainId()]);\n    connection = {\n      accounts: accounts as readonly [Address, ...Address[]],\n      chainId,\n      connector,\n    };\n  } else connection = config.state.connections.get(config.state.current!);\n  if (!connection) throw new ConnectorNotConnectedError();\n\n  const chainId = parameters.chainId ?? connection.chainId;\n\n  type Return = GetConnectorClientReturnType;\n  const connector = connection.connector;\n  if (connector.chainType !== 'evm') {\n    throw new ChainTypeError();\n  }\n\n  // Default using `custom` transport\n  const account = parseAccount(parameters.account ?? (connection.accounts[0] as Address));\n  account.address = getAddress(account.address);\n\n  const chain = config.chains.find((chain) => chain.id === chainId);\n  const provider = (await connection.connector.getProvider({ chainId })) as {\n    request(...args: any): Promise<any>;\n  };\n\n  // if account was provided, check that it exists on the connector\n  if (parameters.account && !connection.accounts.some((x) => x.toLowerCase() === account.address.toLowerCase()))\n    throw new ConnectorAccountNotFoundError({\n      address: account.address,\n      connector,\n    });\n\n  return createClient({\n    account,\n    chain,\n    name: 'Connector Client',\n    transport: (opts) => custom(provider)({ ...opts, retryCount: 0 }),\n  }) as Return;\n}\n", "import type { ErrorType, Evaluate } from '@particle-network/connector-core';\nimport { walletActions, type Account, type BaseErrorType, type Chain, type Transport, type WalletClient } from 'viem';\nimport type { Config } from '../createConfig';\nimport {\n  getConnectorClient,\n  type GetConnectorClientErrorType,\n  type GetConnectorClientParameters,\n} from './getConnectorClient';\n\nexport type GetWalletClientParameters = GetConnectorClientParameters;\n\nexport type GetWalletClientReturnType = Evaluate<WalletClient<Transport, Chain, Account>>;\n\nexport type GetWalletClientErrorType =\n  // getConnectorClient()\n  | GetConnectorClientErrorType\n  // base\n  | BaseErrorType\n  | ErrorType;\n\nexport async function getWalletClient(\n  config: Config,\n  parameters: GetWalletClientParameters = {}\n): Promise<GetWalletClientReturnType> {\n  const client = await getConnectorClient(config, parameters);\n  client.extend(walletActions);\n  return client.extend(walletActions) as unknown as GetWalletClientReturnType;\n}\n", "import type {\n  ChainType,\n  Connection,\n  EVMChain,\n  Evaluate,\n  SolanaChain,\n  SolanaWalletClient,\n} from '@particle-network/connector-core';\nimport type { WalletClient } from 'viem';\nimport type { Config } from '../createConfig';\nimport { getSolanaWalletClient } from './getSolanaWalletClient';\nimport { getWalletClient } from './getWalletClient';\n\nexport type MapWalletClientParamers = {\n  connections: Connection[];\n  config: Config;\n};\n\nexport type WalletClientType<chainType extends ChainType = EVMChain> = chainType extends EVMChain\n  ? WalletClient\n  : SolanaWalletClient;\n\nexport type Wallet = Readonly<\n  Evaluate<\n    {\n      getWalletClient: <chainType extends ChainType = EVMChain>() => WalletClientType<chainType>;\n    } & Connection\n  >\n>;\n\nexport type MapWalletClientReturnType = Wallet[];\n\nexport const mapWalletClient = async (parameters: MapWalletClientParamers): Promise<MapWalletClientReturnType> => {\n  const { connections, config } = parameters;\n  const wallets: Wallet[] = [];\n  for (const connection of connections) {\n    if (!connection.connector.walletConnectorType) {\n      continue;\n    }\n    if (connection.connector.chainType === 'evm') {\n      const client = await getWalletClient(config, { connector: connection.connector });\n      const wallet = {\n        ...connection,\n        getWalletClient: <chainType extends ChainType = EVMChain>() => client as WalletClientType<chainType>,\n      };\n      wallets.push(wallet);\n    } else {\n      const client = await getSolanaWalletClient(config, { connector: connection.connector });\n      const wallet = {\n        ...connection,\n        getWalletClient: <chainType extends ChainType = SolanaChain>() => client as WalletClientType<chainType>,\n      };\n      wallets.push(wallet);\n    }\n  }\n  return wallets;\n};\n", "import { useCallback, useState } from 'react';\n\ntype MutationStatus = 'idle' | 'loading' | 'success' | 'error';\n\nexport interface MutationOptions<TData, TVariables> {\n  onMutate?: (variables: TVariables) => void;\n  onSuccess?: (data: TData) => void;\n  onError?: (error: any) => void;\n  onSettled?: (data: TData | null, error: any) => void;\n}\n\ninterface MutationResult<TData, TVariables> {\n  status: MutationStatus;\n  data: TData | null;\n  error: any;\n  mutate: (variables: TVariables) => void;\n  mutateAsync: (variables: TVariables) => Promise<TData>;\n}\n\nexport const useMutation = <TData = void, TVariables = void>(\n  mutationFn: (variables: TVariables) => Promise<TData>,\n  options?: MutationOptions<TData, TVariables>\n): MutationResult<TData, TVariables> => {\n  const [status, setStatus] = useState<MutationStatus>('idle');\n  const [data, setData] = useState<TData | null>(null);\n  const [error, setError] = useState<any>(null);\n\n  const mutateAsync = useCallback(\n    async (variables: TVariables): Promise<TData> => {\n      if (options?.onMutate) {\n        options.onMutate(variables);\n      }\n      setStatus('loading');\n      setData(null);\n      setError(null);\n\n      try {\n        const result = await mutationFn(variables);\n        setData(result);\n        setStatus('success');\n        if (options?.onSuccess) {\n          options.onSuccess(result);\n        }\n        if (options?.onSettled) {\n          options.onSettled(result, null);\n        }\n        return result;\n      } catch (err) {\n        setError(err);\n        setStatus('error');\n        if (options?.onError) {\n          options.onError(err);\n        }\n        if (options?.onSettled) {\n          options.onSettled(null, err);\n        }\n        throw err; // re-throw the error to allow user to handle it\n      }\n    },\n    [mutationFn, options]\n  );\n\n  const mutate = useCallback(\n    (variables: TVariables) => {\n      mutateAsync(variables).catch(() => {\n        // Error handling is already done in mutateAsync\n      });\n    },\n    [mutateAsync]\n  );\n\n  return { status, data, error, mutate, mutateAsync };\n};\n", "import React, { createContext, useEffect } from 'react';\nimport { useContext } from '..';\nimport { mapWalletClient, type Wallet } from '../../actions/mapWalletClient';\nimport { useConnections } from '../../hooks/useConnections';\nimport { useMutation } from '../../hooks/useMutation';\n\ntype ContextValue = {\n  wallets: Wallet[];\n};\n\nexport const Web3Context = createContext<ContextValue | null>(null);\n\nexport const Web3Provder = ({ children }: React.PropsWithChildren) => {\n  const connections = useConnections();\n  const { config } = useContext();\n\n  const { data: wallets, mutate: connectionMutate } = useMutation(mapWalletClient);\n\n  useEffect(() => {\n    connectionMutate({ connections, config });\n  }, [connections]);\n\n  return (\n    <Web3Context.Provider\n      value={{\n        wallets: wallets || [],\n      }}\n    >\n      {children}\n    </Web3Context.Provider>\n  );\n};\n\nexport const useWeb3Context = () => {\n  const context = React.useContext(Web3Context);\n  if (!context) throw Error('Web3 Hook must be inside a Provider.');\n  return context;\n};\n", "import type { AAPlugin } from '@particle-network/aa-plugin';\nimport React, { createContext, useMemo, type ReactNode } from 'react';\nimport ConnectModal from '../components/connectModal';\nimport { type Config } from '../createConfig';\nimport { useAppearance } from '../hooks/useAppearance';\nimport { getAuthCoreTheme } from '../styles';\nimport type { AuthWalletConnectorProperties } from '../types/properties';\nimport { getSystemMode } from '../utils/theme';\nimport { ModalProvider } from './modalProvider';\nimport type { ConnectKitOptions } from './types';\nimport { Web3Provder } from './web3Provider';\n\ntype ContextValue = {\n  options: ConnectKitOptions;\n  config: Config;\n};\n\nexport const Context = createContext<ContextValue | null>(null);\n\nexport type ConnectKitProviderProps = {\n  children?: ReactNode;\n  config: Config;\n  reconnectOnMount?: boolean | undefined;\n};\n\nexport const ConnectKitProvider = (parameters: ConnectKitProviderProps): React.ReactElement => {\n  // Only allow for mounting ConnectKitProvider once, so we avoid weird global\n  // state collisions.\n  if (React.useContext(Context)) {\n    throw new Error('Multiple, nested usages of ConnectKitProvider detected. Please use only one.');\n  }\n\n  const { children, config, reconnectOnMount = true } = parameters;\n  const { appearance } = useAppearance(config);\n\n  const { AuthCoreContextProvider, authOptions } = useMemo(() => {\n    const authWalletConnector = config.getWalletConnector<AuthWalletConnectorProperties>('particleAuth');\n    const aaPlugin = config.plugins.find((plugin) => plugin.id === 'aa') as AAPlugin;\n    const erc4337 = aaPlugin ? aaPlugin.erc4337 : undefined;\n\n    let theme = appearance?.mode ?? getSystemMode();\n    if (theme === 'auto') {\n      theme = getSystemMode();\n    }\n\n    return {\n      AuthCoreContextProvider: authWalletConnector?.AuthCoreContextProvider ?? React.Fragment,\n      authOptions: authWalletConnector\n        ? {\n            options: {\n              themeType: theme,\n              ...authWalletConnector.authOptions,\n              customStyle: {\n                ...authWalletConnector.authOptions?.customStyle,\n                theme: {\n                  [theme as string]: getAuthCoreTheme(appearance),\n                },\n              },\n              erc4337,\n            },\n          }\n        : undefined,\n    };\n  }, [config, appearance]);\n\n  return (\n    <Context.Provider\n      value={{\n        options: config.options,\n        config,\n      }}\n    >\n      <AuthCoreContextProvider {...authOptions}>\n        <Web3Provder>\n          {children}\n          <ModalProvider reconnectOnMount={reconnectOnMount}>\n            <ConnectModal />\n          </ModalProvider>\n        </Web3Provder>\n      </AuthCoreContextProvider>\n    </Context.Provider>\n  );\n};\n\nexport const useContext = () => {\n  const context = React.useContext(Context);\n  if (!context) throw Error('ConnectKit Hook must be inside a Provider.');\n  return context;\n};\n", "import { useCallback, useSyncExternalStore } from 'react';\nimport { useContext } from '../context';\nimport type { Appearance } from '../context/types';\nimport type { Config } from '../createConfig';\nimport { deepEqual } from '../utils/deepEqual';\n\nexport type UseAppearanceReturnType = {\n  appearance: Appearance;\n  setAppearance: (value?: Appearance) => void;\n};\n\nexport type WatchAppearanceParameters = {\n  onChange(appearance: Appearance, prevAppearance: Appearance): void;\n};\n\nlet previousAppearance: Appearance = {};\n\nexport function getAppearance(config: Config) {\n  const appearance = { ...config.appearanceStore.getState() };\n  if (deepEqual(previousAppearance, appearance)) return previousAppearance;\n\n  previousAppearance = appearance;\n  return appearance;\n}\n\nexport function useAppearance(config?: Config): UseAppearanceReturnType {\n  if (!config) {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    const { config: globalConfig } = useContext();\n    config = globalConfig;\n  }\n\n  const setAppearance = useCallback(\n    (value?: Appearance) => {\n      config.appearanceStore.setState(value || {}, true);\n    },\n    [config.appearanceStore]\n  );\n\n  const appearance = useSyncExternalStore(\n    config.appearanceStore.subscribe,\n    () => getAppearance(config),\n    () => getAppearance(config)\n  );\n\n  return {\n    appearance,\n    setAppearance,\n  };\n}\n", "import { useEffect, useMemo, useState } from 'react';\nimport { getSystemMode } from '../utils/theme';\nimport { useAppearance } from './useAppearance';\n\nconst useIconColor = () => {\n  const [currentMode, setCurrentMode] = useState<'light' | 'dark'>();\n  const { appearance } = useAppearance();\n\n  useEffect(() => {\n    if (appearance?.mode && appearance?.mode !== 'auto') {\n      setCurrentMode(appearance?.mode);\n    } else {\n      setCurrentMode(getSystemMode());\n    }\n  }, [appearance?.mode]);\n\n  const foreground = useMemo(() => {\n    if (currentMode === 'dark') {\n      return '#000000';\n    } else {\n      return '#ffffff';\n    }\n  }, [currentMode]);\n\n  const background = useMemo(() => {\n    if (currentMode === 'dark') {\n      return '#ffffff';\n    } else {\n      return '#000000';\n    }\n  }, [currentMode]);\n\n  return { foreground, background, currentMode };\n};\n\nexport default useIconColor;\n", "import { useMemo } from 'react';\nimport useIconColor from '../../hooks/useIconColor';\n\nconst Trust = ({ ...props }) => {\n  const { currentMode } = useIconColor();\n\n  const id = useMemo(() => {\n    return Math.random().toString(36).substring(7);\n  }, []);\n\n  const id2 = useMemo(() => {\n    return Math.random().toString(36).substring(7);\n  }, []);\n\n  return currentMode === 'light' ? (\n    <svg xmlns='http://www.w3.org/2000/svg' width='22' height='24' viewBox='0 0 22 24' fill='none' {...props}>\n      <path\n        d='M0.286133 3.46686L10.9995 0V24C3.34699 20.7997 0.286133 14.6664 0.286133 11.2003V3.46686Z'\n        fill='#0500FF'\n      />\n      <path\n        d='M21.7137 3.46686L11.0004 0V24C18.6529 20.7997 21.7137 14.6664 21.7137 11.2003V3.46686Z'\n        fill={`url(#${id})`}\n      />\n      <defs>\n        <linearGradient id={id} x1='18.8679' y1='-1.68063' x2='10.8399' y2='23.6925' gradientUnits='userSpaceOnUse'>\n          <stop offset='0.02' stopColor='#0000FF' />\n          <stop offset='0.08' stopColor='#0094FF' />\n          <stop offset='0.16' stopColor='#48FF91' />\n          <stop offset='0.42' stopColor='#0094FF' />\n          <stop offset='0.68' stopColor='#0038FF' />\n          <stop offset='0.9' stopColor='#0500FF' />\n        </linearGradient>\n      </defs>\n    </svg>\n  ) : (\n    <svg xmlns='http://www.w3.org/2000/svg' width='22' height='24' viewBox='0 0 22 24' fill='none' {...props}>\n      <path\n        d='M0.269531 3.46687L10.9994 0V24C3.33511 20.7997 0.269531 14.6664 0.269531 11.2003V3.46687Z'\n        fill='#48FF91'\n      />\n      <path\n        d='M21.7305 3.46687L11.0006 0V24C18.6649 20.7997 21.7305 14.6664 21.7305 11.2003V3.46687Z'\n        fill={`url(#${id2})`}\n      />\n      <defs>\n        <linearGradient id={id2} x1='10.5475' y1='27.0164' x2='19.2341' y2='-4.58841' gradientUnits='userSpaceOnUse'>\n          <stop offset='0.26' stopColor='#48FF91' />\n          <stop offset='0.66' stopColor='#0094FF' />\n          <stop offset='0.8' stopColor='#0038FF' />\n          <stop offset='0.89' stopColor='#0500FF' />\n        </linearGradient>\n      </defs>\n    </svg>\n  );\n};\n\nexport default Trust;\n"],
  "mappings": "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",
  "names": ["chain", "create", "create", "lazy", "useCallback", "useMemo", "base", "create", "jsx", "connections", "useEffect", "useMemo", "useRef", "jsx", "connections", "plugin", "connector", "chainId", "chain", "ChainTypeError", "ConnectorAccountNotFoundError", "ConnectorNotConnectedError", "connector", "chainId", "chain", "useCallback", "React", "createContext", "useEffect", "jsx", "React", "createContext", "useMemo", "jsx", "useCallback", "useSyncExternalStore", "useEffect", "useMemo", "useState", "useMemo", "jsx", "jsxs"]
}
