@orderly.network/wallet-connector-privy 2.0.8-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +83 -0
- package/dist/index.d.ts +83 -0
- package/dist/index.js +2350 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2315 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/provider.tsx","../src/main.tsx","../src/components/connectDrawer.tsx","../src/providers/wagmiWalletProvider.tsx","../src/hooks/useWallet.tsx","../src/providers/solanaWalletProvider.tsx","../src/types.ts","../src/providers/privyWalletProvider.tsx","../src/components/common.tsx","../src/util.ts","../src/components/renderNoPrivyWallet.tsx","../src/components/walletCard.tsx","../src/components/icons.tsx","../src/components/addSolanaWallet.tsx","../src/components/addEvmWallet.tsx","../src/components/drawer.tsx","../src/components/renderPrivyWallet.tsx","../src/components/userCenter.tsx","../src/injectUsercenter.tsx","../src/providers/initPrivyProvider.tsx","../src/providers/initSolanaProvider.tsx","../src/providers/initWagmiProvider.tsx","../src/index.ts"],"names":["React","useEffect","useRef","useState","createContext","useContext","useMemo","useCallback","useScreen","wagmiConnectors","chainId","connector","ChainNamespace","WalletAdapterNetwork","Network","WalletType","WalletChainTypeEnum","signMessage","signTransaction","sendTransaction","EnumTrackerKeys","useTrack","useWallet","namespace","ConnectorKey","useLocalStorage","cn","Tooltip","useTranslation","ChevronDownIcon","ChevronUpIcon","formatAddress","props","mainnet","SolanaChains","mainnetChains","network"],"mappings":"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","sourcesContent":["import React, {\n type PropsWithChildren,\n useEffect,\n useRef,\n useState,\n createContext,\n useContext,\n type RefObject,\n useMemo,\n} from \"react\";\nimport { Main } from \"./main\";\nimport { type Chain, defineChain } from \"viem\";\nimport { TooltipProvider } from \"@orderly.network/ui\";\nimport { mainnet } from \"viem/chains\";\nimport { ArbitrumSepoliaChainInfo, ChainNamespace, SolanaChains, SolanaDevnetChainInfo } from \"@orderly.network/types\";\nimport {\n InitPrivy,\n InitWagmi,\n InitSolana,\n Network,\n WalletChainType,\n WalletChainTypeEnum,\n ConnectorWalletType,\n SolanaChainsMap,\n} from \"./types\";\nimport { InitPrivyProvider } from \"./providers/initPrivyProvider\";\nimport { InitSolanaProvider } from \"./providers/initSolanaProvider\";\nimport { InitWagmiProvider } from \"./providers/initWagmiProvider\";\nimport { PrivyWalletProvider } from \"./providers/privyWalletProvider\";\nimport { WagmiWalletProvider } from \"./providers/wagmiWalletProvider\";\nimport { SolanaWalletProvider } from \"./providers/solanaWalletProvider\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\nimport { Chains } from \"@orderly.network/hooks\";\n\nconst fetchChainInfo = async (url: string) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to fetch data from ${url}`);\n }\n return response.json();\n};\n\nconst processChainInfo = (chainInfo: any) =>\n chainInfo.map((row: any) =>\n defineChain({\n id: Number(row.chain_id),\n name: row.name,\n nativeCurrency: {\n decimals: row.currency_decimal,\n name: \"Ether\",\n symbol: row.currency_symbol,\n },\n rpcUrls: {\n default: {\n http: [row.public_rpc_url],\n },\n },\n blockExplorers: {\n default: { name: \"Explorer\", url: row.explorer_base_url },\n },\n })\n ) || [];\n\ninterface WalletConnectorPrivyContextType {\n initChains: Chain[];\n mainnetChains: Chain[];\n testnetChains: Chain[];\n getChainsByNetwork: (network: \"mainnet\" | \"testnet\") => Chain[];\n openConnectDrawer: boolean;\n setOpenConnectDrawer: (open: boolean) => void;\n targetNamespace: ChainNamespace | undefined;\n setTargetNamespace: (namespace: ChainNamespace | undefined) => void;\n network: Network;\n setNetwork: (network: Network) => void;\n solanaInfo: {\n rpcUrl: string | null;\n network: WalletAdapterNetwork | null;\n } | null;\n setSolanaInfo: (\n solanaInfo: {\n rpcUrl: string | null;\n network: WalletAdapterNetwork | null;\n } | null\n ) => void;\n termsOfUse: string;\n walletChainType: WalletChainType;\n connectorWalletType: ConnectorWalletType;\n}\n\nconst walletConnectorPrivyContext =\n createContext<WalletConnectorPrivyContextType>({\n initChains: [mainnet],\n mainnetChains: [],\n testnetChains: [],\n getChainsByNetwork: () => [],\n openConnectDrawer: false,\n setOpenConnectDrawer: () => {},\n targetNamespace: undefined,\n setTargetNamespace: () => {},\n network: Network.mainnet,\n setNetwork: () => {},\n solanaInfo: null,\n setSolanaInfo: () => {},\n termsOfUse: \"\",\n walletChainType: WalletChainTypeEnum.EVM_SOL,\n connectorWalletType: {\n disableWagmi: false,\n disablePrivy: false,\n disableSolana: false,\n },\n });\n\nexport const useWalletConnectorPrivy = () =>\n useContext(walletConnectorPrivyContext);\n\ninterface WalletConnectorPrivyProps extends PropsWithChildren {\n privyConfig?: InitPrivy;\n wagmiConfig?: InitWagmi;\n solanaConfig?: InitSolana;\n network: Network;\n customChains?: Chains;\n termsOfUse: string;\n}\nexport function WalletConnectorPrivyProvider(props: WalletConnectorPrivyProps) {\n const [walletChainType, setWalletChainType] = useState<WalletChainType>(\n WalletChainTypeEnum.EVM_SOL\n );\n const [termsOfUse] = useState<string>(props.termsOfUse);\n const [network, setNetwork] = useState<Network>(props.network);\n const [initChains, setInitChains] = useState<Chain[]>([]);\n const [mainnetChains, setMainnetChains] = useState<Chain[]>([]);\n const [testnetChains, setTestnetChains] = useState<Chain[]>([]);\n const initRef = useRef(false);\n const [openConnectDrawer, setOpenConnectDrawer] = useState(false);\n const [targetNamespace, setTargetNamespace] = useState<\n ChainNamespace | undefined\n >();\n const [solanaInfo, setSolanaInfo] = useState<{\n rpcUrl: string | null;\n network: WalletAdapterNetwork | null;\n } | null>(null);\n\n const connectorWalletType = useMemo(() => {\n let type: ConnectorWalletType = {\n disableWagmi: false,\n disablePrivy: false,\n disableSolana: false,\n };\n if (!props.privyConfig) {\n type.disablePrivy = true;\n }\n if (!props.wagmiConfig) {\n type.disableWagmi = true;\n }\n if (!props.solanaConfig) {\n type.disableSolana = true;\n }\n return type;\n }, [props.privyConfig, props.wagmiConfig, props.solanaConfig]);\n\n const fetchAllChains = async () => {\n let testChainsList = []; \n let mainnetChainsList = [];\n try {\n const testChainInfoRes = await fetchChainInfo(\n \"https://testnet-api-evm.orderly.org/v1/public/chain_info\"\n );\n testChainsList = testChainInfoRes.data.rows;\n } catch (error) {\n console.error(\"Error fetching data:\", error);\n testChainsList = [ArbitrumSepoliaChainInfo, SolanaDevnetChainInfo];\n }\n\n\n try {\n const mainnetChainInfoRes = await fetchChainInfo(\n \"https://api-evm.orderly.org/v1/public/chain_info\"\n );\n mainnetChainsList = mainnetChainInfoRes.data.rows;\n } catch (error) {\n console.error(\"Error fetching data:\", error);\n mainnetChainsList = [];\n }\n\n const testChains = processChainInfo(testChainsList);\n const mainnetChains = processChainInfo(mainnetChainsList);\n\n setTestnetChains(testChains);\n setMainnetChains(mainnetChains);\n setInitChains([...testChains, ...mainnetChains] as [Chain, ...Chain[]]);\n initRef.current = true;\n };\n\n const handleCustomerChains = () => {\n const testChains = processChainInfo(\n props.customChains!.testnet?.map((item) => item.network_infos)\n );\n const mainnetChains = processChainInfo(\n props.customChains!.mainnet?.map((item) => item.network_infos)\n );\n setTestnetChains(testChains);\n setMainnetChains(mainnetChains);\n setInitChains([...testChains, ...mainnetChains] as [Chain, ...Chain[]]);\n const chainTypeObj: {\n hasEvm: boolean;\n hasSol: boolean;\n } = {\n hasEvm: false,\n hasSol: false,\n };\n [...testChains, ...mainnetChains].forEach((chain) => {\n if (SolanaChains.has(chain.id)) {\n chainTypeObj.hasSol = true;\n } else {\n chainTypeObj.hasEvm = true;\n }\n });\n initRef.current = true;\n if (chainTypeObj.hasEvm && chainTypeObj.hasSol) {\n setWalletChainType(WalletChainTypeEnum.EVM_SOL);\n } else if (chainTypeObj.hasEvm) {\n setWalletChainType(WalletChainTypeEnum.onlyEVM);\n } else if (chainTypeObj.hasSol) {\n setWalletChainType(WalletChainTypeEnum.onlySOL);\n }\n };\n if (\n connectorWalletType.disablePrivy &&\n connectorWalletType.disableWagmi &&\n connectorWalletType.disableSolana\n ) {\n throw new Error(\n \"Privy, Wagmi, and Solana are disabled. Please enable at least one of them.\"\n );\n }\n\n const getChainsByNetwork = (network: \"mainnet\" | \"testnet\"): Chain[] => {\n return network === \"mainnet\" ? mainnetChains : testnetChains;\n };\n\n const value = useMemo(\n () => ({\n initChains,\n mainnetChains,\n testnetChains,\n getChainsByNetwork,\n openConnectDrawer,\n setOpenConnectDrawer,\n targetNamespace,\n setTargetNamespace,\n network,\n setNetwork,\n solanaInfo,\n setSolanaInfo,\n termsOfUse,\n walletChainType,\n connectorWalletType,\n }),\n [\n initChains,\n mainnetChains,\n testnetChains,\n getChainsByNetwork,\n openConnectDrawer,\n setOpenConnectDrawer,\n targetNamespace,\n setTargetNamespace,\n network,\n setNetwork,\n solanaInfo,\n setSolanaInfo,\n termsOfUse,\n walletChainType,\n connectorWalletType,\n ]\n );\n\n useEffect(() => {\n if (!props.customChains) {\n fetchAllChains();\n return;\n }\n handleCustomerChains();\n }, [props.customChains]);\n\n if (!initRef.current) {\n return null;\n }\n\n return (\n <walletConnectorPrivyContext.Provider value={value}>\n <TooltipProvider delayDuration={300}>\n <InitPrivyProvider\n privyConfig={props.privyConfig}\n initChains={initChains}\n >\n <InitWagmiProvider\n wagmiConfig={props.wagmiConfig ?? {}}\n initChains={initChains}\n >\n <InitSolanaProvider\n {...(props.solanaConfig ?? { wallets: [], onError: () => {} })}\n >\n <PrivyWalletProvider>\n <WagmiWalletProvider>\n <SolanaWalletProvider>\n <Main>{props.children}</Main>\n </SolanaWalletProvider>\n </WagmiWalletProvider>\n </PrivyWalletProvider>\n </InitSolanaProvider>\n </InitWagmiProvider>\n </InitPrivyProvider>\n </TooltipProvider>\n </walletConnectorPrivyContext.Provider>\n );\n}\n","import React, {\n PropsWithChildren,\n useCallback,\n useEffect,\n useMemo,\n} from \"react\";\nimport { WalletConnectorContext, WalletState } from \"@orderly.network/hooks\";\nimport { ConnectDrawer } from \"./components/connectDrawer\";\nimport { useWalletConnectorPrivy } from \"./provider\";\nimport \"./injectUsercenter\";\nimport { useWallet } from \"./hooks/useWallet\";\n\nexport function Main(props: PropsWithChildren) {\n const { wallet, connectedChain, setChain, namespace } = useWallet();\n const { openConnectDrawer, setOpenConnectDrawer, setTargetNamespace } =\n useWalletConnectorPrivy();\n\n const connect = (props: any): Promise<WalletState[]> => {\n console.log(\"xxxx main connect\", props);\n // fix wallet-connector package connect\n if (props && props.autoSelect) {\n return Promise.resolve([]);\n }\n\n setTargetNamespace(undefined);\n return new Promise((resolve, reject) => {\n setOpenConnectDrawer(true);\n resolve([]);\n });\n };\n // console.log('--xxxmain wallet', wallet);\n\n const disconnect = useCallback(async (): Promise<WalletState[]> => {\n return Promise.resolve([]);\n }, [wallet]);\n\n const value = useMemo(\n () => ({\n connect,\n disconnect,\n connecting: false,\n wallet,\n setChain,\n connectedChain,\n namespace,\n chains: [],\n settingChain: false,\n }),\n [connect, setChain, connectedChain, wallet, namespace]\n );\n\n return (\n <WalletConnectorContext.Provider value={value}>\n <ConnectDrawer\n open={openConnectDrawer}\n onChangeOpen={setOpenConnectDrawer}\n />\n {props.children}\n </WalletConnectorContext.Provider>\n );\n}\n","import {\n ExclamationFillIcon,\n SimpleDialog,\n useScreen,\n} from \"@orderly.network/ui\";\nimport React, { useMemo } from \"react\";\nimport { useWallet } from \"../hooks/useWallet\";\nimport { usePrivyWallet } from \"../providers/privyWalletProvider\";\nimport { ChainNamespace, ConnectorKey } from \"@orderly.network/types\";\nimport { WalletCard } from \"./walletCard\";\nimport { ConnectProps, WalletChainTypeEnum, WalletType } from \"../types\";\nimport { RenderPrivyTypeIcon, RenderWalletIcon } from \"./common\";\nimport { useWalletConnectorPrivy } from \"../provider\";\nimport { useWagmiWallet } from \"../providers/wagmiWalletProvider\";\nimport { useSolanaWallet } from \"../providers/solanaWalletProvider\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { RenderNoPrivyWallet } from \"./renderNoPrivyWallet\";\nimport { CloseIcon } from \"./icons\";\nimport { WalletAdapter } from \"@solana/wallet-adapter-base\";\nimport { cn } from \"@orderly.network/ui\";\nimport { useTranslation, Trans } from \"@orderly.network/i18n\";\nimport { getWalletIcon } from \"../util\";\nimport { Drawer } from \"./drawer\";\nimport { RenderPrivyWallet } from \"./renderPrivyWallet\";\n\nfunction PrivyConnectArea({ connect }: { connect: (type: any) => void }) {\n const { t } = useTranslation();\n const { isMobile, isDesktop } = useScreen();\n const { connectorWalletType } = useWalletConnectorPrivy();\n return (\n <div className=\"\">\n <div\n className={cn(\n \"oui-flex oui-items-center oui-justify-between\",\n \"oui-text-base-contrast-80 oui-text-sm oui-font-semibold oui-mb-3\",\n \"md:oui-mb-2\"\n )}\n >\n {t(\"connector.loginIn\")}\n {isMobile && (\n <div className=\"oui-h-3 oui-flex oui-justify-center\">\n <img\n src=\"https://oss.orderly.network/static/sdk/privy/privy-logo.png\"\n className=\" oui-h-[10px]\"\n />\n </div>\n )}\n </div>\n <div\n className={cn(\n \"oui-grid oui-grid-cols-2 oui-gap-[6px]\",\n \"md:oui-flex md:oui-flex-col md:oui-gap-[6px]\"\n )}\n >\n <div\n className=\"oui-cursor-pointer oui-rounded-[6px] oui-bg-[#333948] oui-px-2 oui-py-[11px] oui-flex oui-justify-center oui-items-center oui-gap-1\"\n onClick={() => connect({ walletType: \"privy\", extraType: \"email\" })}\n >\n <img\n src=\"https://oss.orderly.network/static/sdk/privy/email.svg\"\n className=\"oui-w-[18px] oui-h-[18px]\"\n />\n <div className=\"oui-text-base-contrast oui-text-2xs\">\n {t(\"connector.email\")}\n </div>\n </div>\n\n <div\n className=\"oui-rounded-[6px] oui-bg-[#335FFC] oui-px-2 oui-py-[11px] oui-flex oui-justify-center oui-items-center oui-gap-1 oui-cursor-pointer\"\n onClick={() => connect({ walletType: \"privy\", extraType: \"google\" })}\n >\n <img\n src=\"https://oss.orderly.network/static/sdk/privy/google.svg\"\n className=\"oui-w-[18px] oui-h-[18px]\"\n />\n <div className=\"oui-text-base-contrast oui-text-2xs\">\n {t(\"connector.google\")}\n </div>\n </div>\n\n <div\n className=\"oui-rounded-[6px] oui-bg-[#07080A] oui-px-2 oui-py-[11px] oui-flex oui-justify-center oui-items-center oui-gap-1 oui-cursor-pointer\"\n onClick={() => connect({ walletType: \"privy\", extraType: \"twitter\" })}\n >\n <img\n src=\"https://oss.orderly.network/static/sdk/privy/twitter.svg\"\n className=\"oui-w-[18px] oui-h-[18px]\"\n />\n <div className=\"oui-text-base-contrast oui-text-2xs\">\n {t(\"connector.twitter\")}\n </div>\n </div>\n </div>\n {isDesktop && (\n <div className=\"oui-h-3 oui-flex oui-justify-center oui-mt-4\">\n <img\n src=\"https://oss.orderly.network/static/sdk/privy/privy-logo.png\"\n className=\" oui-h-[10px]\"\n />\n </div>\n )}\n {(!connectorWalletType.disableWagmi ||\n !connectorWalletType.disableSolana) && (\n <div className=\"oui-h-[1px] oui-bg-line oui-w-full oui-mt-4 md:oui-mt-5\"></div>\n )}\n </div>\n );\n}\n\nfunction EVMConnectArea({ connect }: { connect: (type: any) => void }) {\n const { connectors } = useWagmiWallet();\n\n console.log(\"--connectors\", connectors);\n\n return (\n <div className=\"\">\n <div className=\"oui-text-base-contrast-80 oui-text-sm oui-font-semibold oui-mb-2\">\n EVM\n </div>\n <div className=\"oui-grid oui-grid-cols-2 oui-gap-[6px]\">\n {connectors.map((item, key) => (\n <div\n key={key}\n className=\" oui-flex oui-items-center oui-justify-start oui-gap-1 oui-rounded-[6px] oui-px-2 oui-bg-[#07080A] oui-py-[11px] oui-flex-1 oui-cursor-pointer\"\n onClick={() => connect(item)}\n >\n <RenderWalletIcon connector={item} />\n <div className=\"oui-text-base-contrast oui-text-2xs\">\n {item.name}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nfunction SOLConnectArea({\n connect,\n}: {\n connect: (walletAdapter: WalletAdapter) => void;\n}) {\n const { wallets } = useSolanaWallet();\n\n return (\n <div>\n <div className=\"oui-text-base-contrast-80 oui-text-sm oui-font-semibold oui-mb-2\">\n Solana\n </div>\n <div className=\"oui-grid oui-grid-cols-2 oui-gap-[6px]\">\n {wallets.map((item, key) => (\n <div\n key={key}\n className=\" oui-flex oui-items-center oui-justify-center oui-gap-1 oui-rounded-[6px] oui-px-2 oui-bg-[#07080A] oui-py-[11px] oui-flex-1 oui-cursor-pointer\"\n onClick={() => connect(item.adapter)}\n >\n <RenderWalletIcon connector={item.adapter} />\n <div className=\"oui-text-base-contrast oui-text-2xs\">\n {item.adapter.name}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nfunction ConnectWallet() {\n const { connect } = useWallet();\n const { setOpenConnectDrawer, walletChainType, connectorWalletType } =\n useWalletConnectorPrivy();\n\n const handleConnect = (params: ConnectProps) => {\n connect(params);\n if (params.walletType === WalletType.PRIVY) {\n setOpenConnectDrawer(false);\n }\n };\n\n return (\n <div className={cn(\"oui-flex oui-flex-col oui-gap-4\", \"md:oui-gap-5\")}>\n {!connectorWalletType.disablePrivy && (\n <PrivyConnectArea\n connect={(type) =>\n handleConnect({ walletType: WalletType.PRIVY, extraType: type })\n }\n />\n )}\n {walletChainType === WalletChainTypeEnum.EVM_SOL && (\n <>\n {!connectorWalletType.disableWagmi && (\n <EVMConnectArea\n connect={(connector) =>\n handleConnect({\n walletType: WalletType.EVM,\n connector: connector,\n })\n }\n />\n )}\n {!connectorWalletType.disableSolana && (\n <SOLConnectArea\n connect={(walletAdapter) =>\n handleConnect({\n walletType: WalletType.SOL,\n walletAdapter: walletAdapter,\n })\n }\n />\n )}\n </>\n )}\n {walletChainType === WalletChainTypeEnum.onlyEVM && (\n <EVMConnectArea\n connect={(connector) =>\n handleConnect({ walletType: WalletType.EVM, connector: connector })\n }\n />\n )}\n {walletChainType === WalletChainTypeEnum.onlySOL && (\n <SOLConnectArea\n connect={(walletAdapter) =>\n handleConnect({\n walletType: WalletType.SOL,\n walletAdapter: walletAdapter,\n })\n }\n />\n )}\n </div>\n );\n}\n\nfunction MyWallet() {\n const [connectorKey, setConnectorKey] = useLocalStorage(ConnectorKey, \"\");\n\n return (\n <div>\n {connectorKey === \"privy\" && <RenderPrivyWallet />}\n\n {connectorKey !== \"privy\" && <RenderNoPrivyWallet />}\n </div>\n );\n}\n\nexport function ConnectDrawer(props: {\n open: boolean;\n onChangeOpen: (open: boolean) => void;\n}) {\n const { t } = useTranslation();\n const { isConnected: isConnectedPrivy } = usePrivyWallet();\n const { isConnected: isConnectedEvm } = useWagmiWallet();\n const { isConnected: isConnectedSolana } = useSolanaWallet();\n const { termsOfUse, connectorWalletType } = useWalletConnectorPrivy();\n const [connectorKey, setConnectorKey] = useLocalStorage(ConnectorKey, \"\");\n\n const isConnected = useMemo(() => {\n if (connectorKey === WalletType.PRIVY && isConnectedPrivy) {\n return true;\n }\n if (connectorKey !== WalletType.PRIVY) {\n if (isConnectedEvm) {\n return true;\n }\n if (isConnectedSolana) {\n return true;\n }\n }\n return false;\n }, [isConnectedPrivy, isConnectedEvm, isConnectedSolana, connectorKey]);\n\n const { isMobile } = useScreen();\n\n return (\n <Drawer isOpen={props.open} onClose={() => props.onChangeOpen(false)}>\n {!isMobile && (\n <div\n className=\"oui-z-0 oui-absolute -oui-top-[calc(100vh/2)] oui-h-[100vh] oui-left-[50px] oui-right-[50px]\"\n style={{\n background:\n \"conic-gradient(from -41deg at 40.63% 50.41%, rgba(242, 98, 181, 0.00) 125.17920970916748deg, rgba(95, 197, 255, 0.20) 193.4119462966919deg, rgba(255, 172, 137, 0.20) 216.0206937789917deg, rgba(129, 85, 255, 0.20) 236.0708713531494deg, rgba(120, 157, 255, 0.20) 259.95326042175293deg, rgba(159, 115, 241, 0.00) 311.0780096054077deg)\",\n filter: \"blur(50px)\",\n }}\n />\n )}\n <div className=\"oui-z-10 oui-relative\">\n <div className=\"oui-flex oui-justify-between oui-items-center oui-mb-4 md:oui-mb-5\">\n <div\n className={cn(\n \"oui-font-semibold oui-text-base-contrast-80 \",\n \"oui-text-[20px] oui-py-2\",\n \"md:oui-text-base md:oui-py-0\"\n )}\n >\n {isConnected\n ? t(\"connector.myWallet\")\n : t(\"connector.connectWallet\")}\n </div>\n <CloseIcon\n className=\"oui-cursor-pointer oui-text-base-contrast-20 oui-w-5 oui-h-5 hover:oui-text-base-contrast-80\"\n onClick={() => props.onChangeOpen(false)}\n />\n </div>\n {isConnected ? <MyWallet /> : <ConnectWallet />}\n </div>\n\n {!isConnected && (\n <div className=\"oui-z-10 oui-text-base-contrast-80 oui-text-center oui-text-2xs oui-relative oui-font-semibold\">\n {/* @ts-ignore */}\n <Trans\n i18nKey=\"connector.termsOfUse\"\n components={[\n <a\n href={termsOfUse}\n className=\"oui-cursor-pointer oui-underline oui-text-primary\"\n target=\"_blank\"\n />,\n ]}\n />\n </div>\n )}\n </Drawer>\n );\n}\n","import {\n Connector,\n useAccount,\n useConnect,\n useDisconnect,\n useSwitchChain,\n} from \"wagmi\";\nimport React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { ChainNamespace } from \"@orderly.network/types\";\nimport { useWalletConnectorPrivy } from \"../provider\";\n\ninterface WagmiWalletContextValue {\n connectors: Connector[];\n connect: (args: any) => void;\n wallet: any;\n connectedChain: { id: number; namespace: ChainNamespace } | null;\n setChain: (chainId: number) => Promise<any>;\n disconnect: () => void;\n isConnected: boolean;\n}\n\nconst WagmiWalletContext = createContext<WagmiWalletContextValue | null>(null);\n\nexport const WagmiWalletProvider: React.FC<{ children: React.ReactNode }> = ({\n children,\n}) => {\n const { connectorWalletType } = useWalletConnectorPrivy();\n const [wallet, setWallet] = useState<undefined | any>(undefined);\n const { connect, connectors: wagmiConnectors } =\n connectorWalletType.disableWagmi\n ? { connect: () => Promise.resolve(), connectors: [] }\n : useConnect();\n const { disconnect } = connectorWalletType.disableWagmi\n ? { disconnect: () => Promise.resolve() }\n : useDisconnect();\n const { connector, isConnected, address, chainId } =\n connectorWalletType.disableWagmi\n ? { connector: null, isConnected: false, address: null, chainId: null }\n : useAccount();\n const { switchChain } = connectorWalletType.disableWagmi\n ? { switchChain: () => Promise.resolve() }\n : useSwitchChain();\n\n const connectedChain = useMemo(() => {\n if (chainId) {\n return {\n id: chainId,\n namespace: ChainNamespace.evm,\n };\n }\n return null;\n }, [chainId]);\n\n const setChain = useCallback(\n (chainId: number) => {\n return new Promise((resolve, reject) => {\n switchChain(\n { chainId },\n {\n onSuccess: () => resolve(true),\n onError: (e) => {\n console.log(\"-- switch chain error\", e);\n return reject(e);\n },\n }\n );\n });\n },\n [switchChain]\n );\n\n useEffect(() => {\n if (!connector || !isConnected) {\n console.log(\"-- xxx wagmi wallet setundefine\", isConnected);\n setWallet(undefined);\n return;\n }\n connector.getProvider().then((provider) => {\n setWallet({\n label: connector.name,\n icon: \"\",\n provider: provider,\n accounts: [\n {\n address: address,\n },\n ],\n chains: [\n {\n id: chainId,\n namespace: ChainNamespace.evm,\n },\n ],\n chain: connectedChain,\n });\n });\n }, [connector, chainId, isConnected, address, connectedChain]);\n\n const connectors = useMemo(() => {\n return wagmiConnectors\n .filter((connector: any) => connector.id !== \"injected\")\n .sort((a: any, b: any) =>\n a.type === \"injected\" ? -1 : 1\n ) as Connector[];\n }, [wagmiConnectors]);\n\n const value = useMemo(\n () => ({\n connectors,\n connect,\n wallet,\n connectedChain,\n setChain,\n disconnect,\n isConnected,\n }),\n [\n connectors,\n connect,\n wallet,\n connectedChain,\n setChain,\n disconnect,\n isConnected,\n ]\n );\n\n return (\n <WagmiWalletContext.Provider value={value}>\n {children}\n </WagmiWalletContext.Provider>\n );\n};\n\nexport function useWagmiWallet() {\n const context = useContext(WagmiWalletContext);\n if (!context) {\n throw new Error(\"useWagmiWallet must be used within a WagmiWalletProvider\");\n }\n return context;\n}\n","import { useWagmiWallet } from \"../providers/wagmiWalletProvider\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { useSolanaWallet } from \"../providers/solanaWalletProvider\";\nimport { usePrivyWallet } from \"../providers/privyWalletProvider\";\nimport {\n ChainNamespace,\n ConnectorKey,\n EnumTrackerKeys,\n TrackerListenerKeyMap,\n} from \"@orderly.network/types\";\nimport {\n useLocalStorage,\n useStorageChain,\n useTrack,\n WalletState,\n} from \"@orderly.network/hooks\";\nimport {\n ConnectProps,\n SolanaChains,\n WalletChainTypeEnum,\n WalletType,\n} from \"../types\";\nimport { useWalletConnectorPrivy } from \"../provider\";\n\nexport function useWallet() {\n const { track } = useTrack();\n const { walletChainType } = useWalletConnectorPrivy();\n const [connectorKey, setConnectorKey] = useLocalStorage(ConnectorKey, \"\");\n const {\n disconnect: disconnectEVM,\n connect: connectEVM,\n wallet: walletEVM,\n connectedChain: connectedChainEvm,\n setChain: setChainEvm,\n isConnected: isConnectedEVM,\n } = useWagmiWallet();\n const {\n disconnect: disconnectSOL,\n connect: connectSOL,\n wallet: walletSOL,\n isConnected: isConnectedSOL,\n connectedChain: connectedChainSOL,\n } = useSolanaWallet();\n const {\n disconnect: disconnectPrivy,\n connect: connectPrivy,\n walletSOL: privyWalletSOL,\n walletEVM: privyWalletEVM,\n isConnected: isConnectedPrivy,\n switchChain: setChainPrivy,\n } = usePrivyWallet();\n const [wallet, setWallet] = useState<WalletState | null>(null);\n const [namespace, setNamespace] = useState<ChainNamespace | null>(null);\n const { storageChain, setStorageChain } = useStorageChain();\n const { setOpenConnectDrawer, setTargetNamespace } =\n useWalletConnectorPrivy();\n\n const isManual = useRef<boolean>(false);\n\n const connect = (params: ConnectProps) => {\n setTargetNamespace(undefined);\n try {\n if (params.walletType === WalletType.EVM) {\n setConnectorKey(WalletType.EVM);\n connectEVM({ connector: params.connector! });\n }\n if (params.walletType === WalletType.SOL) {\n setConnectorKey(WalletType.SOL);\n connectSOL(params.walletAdapter!.name).then();\n }\n if (params.walletType === WalletType.PRIVY) {\n setConnectorKey(WalletType.PRIVY);\n connectPrivy();\n }\n } catch (e) {\n console.log(\"-- e\", e);\n }\n };\n\n const isPrivy = useMemo(() => {\n if (connectorKey === WalletType.PRIVY) {\n return true;\n }\n return false;\n }, [connectorKey]);\n\n const [connectedChain, setConnectedChain] = useState<any>();\n\n const setChain = async (chain: {\n chainId: number | string;\n }): Promise<boolean | undefined> => {\n let tempNamespace: ChainNamespace = ChainNamespace.evm;\n if (\n Array.from(SolanaChains.values()).includes(\n parseInt(chain.chainId as string)\n )\n ) {\n tempNamespace = ChainNamespace.solana;\n }\n if (isPrivy) {\n if (tempNamespace === ChainNamespace.evm) {\n if (walletChainType === WalletChainTypeEnum.onlySOL) {\n return Promise.reject(new Error(\"No evm wallet found\"));\n }\n isManual.current = true;\n return setChainPrivy(parseInt(chain.chainId as string))\n .then((res) => {\n track(EnumTrackerKeys.switchNetworkSuccess, {\n from_chain: storageChain?.chainId,\n to_chain: chain.chainId,\n });\n setStorageChain(parseInt(chain.chainId as string));\n\n return Promise.resolve(true);\n })\n .catch((e) => {\n console.log(\"xxxx switch network failed\", {\n error: e,\n });\n return Promise.reject(e);\n });\n }\n\n if (tempNamespace === ChainNamespace.solana) {\n isManual.current = true;\n if (walletChainType === WalletChainTypeEnum.onlyEVM) {\n return Promise.reject(new Error(\"only evm wallet\"));\n }\n if (privyWalletSOL) {\n setStorageChain(parseInt(chain.chainId as string));\n return Promise.resolve(true);\n } else {\n setOpenConnectDrawer(true);\n setTargetNamespace(ChainNamespace.solana);\n return Promise.reject(new Error(\"No solana wallet found\"));\n }\n }\n } else {\n if (storageChain.namespace === ChainNamespace.evm) {\n // if current namespace is evm, switch chain\n if (tempNamespace === ChainNamespace.evm) {\n await setChainEvm(parseInt(chain.chainId as string));\n setStorageChain(parseInt(chain.chainId as string));\n track(EnumTrackerKeys.switchNetworkSuccess, {\n from_chain: storageChain?.chainId,\n to_chain: chain.chainId,\n });\n return Promise.resolve(true);\n }\n if (tempNamespace === ChainNamespace.solana) {\n if (isConnectedSOL && walletSOL) {\n setStorageChain(parseInt(chain.chainId as string));\n } else {\n setOpenConnectDrawer(true);\n setTargetNamespace(ChainNamespace.solana);\n return Promise.resolve(true);\n }\n }\n }\n if (storageChain.namespace === ChainNamespace.solana) {\n if (tempNamespace === ChainNamespace.evm) {\n if (isConnectedEVM && walletEVM) {\n setStorageChain(parseInt(chain.chainId as string));\n } else {\n setOpenConnectDrawer(true);\n setTargetNamespace(ChainNamespace.evm);\n }\n }\n }\n }\n };\n\n const switchWallet = (namespace: ChainNamespace) => {\n // TODO need get chain from wallet\n const fromWallet = wallet?.accounts[0].address;\n let toWallet: string | undefined;\n if (isPrivy) {\n if (namespace === ChainNamespace.evm) {\n if (privyWalletEVM) {\n setStorageChain(privyWalletEVM.chain.id);\n toWallet = privyWalletEVM.accounts[0].address;\n }\n } else {\n if (privyWalletSOL) {\n setStorageChain(privyWalletSOL.chain.id);\n toWallet = privyWalletSOL.accounts[0].address;\n }\n }\n } else {\n if (namespace === ChainNamespace.evm) {\n if (walletEVM) {\n setStorageChain(walletEVM.chain.id);\n toWallet = walletEVM.accounts[0].address;\n }\n } else {\n if (walletSOL) {\n setStorageChain(walletSOL.chain.id);\n toWallet = walletSOL.accounts[0].address;\n }\n }\n }\n track(EnumTrackerKeys.clickSwitchWallet, {\n fromWallet,\n toWallet,\n });\n };\n\n const disconnect = async (walletType: WalletType) => {\n if (walletType === WalletType.PRIVY) {\n return await disconnectPrivy();\n }\n if (walletType === WalletType.EVM) {\n return disconnectEVM();\n }\n if (walletType === WalletType.SOL) {\n return disconnectSOL();\n }\n };\n\n const setNullWalletStatus = () => {\n setWallet(null);\n setConnectedChain(null);\n setNamespace(null);\n };\n\n useEffect(() => {\n // check current connector and chain form localstorage\n if (connectorKey !== WalletType.PRIVY) {\n return;\n }\n // console.log('xxxx connector privy', {\n // connectorKey,\n // storageChain,\n // privyWalletEVM,\n // privyWalletSOL\n // });\n\n if (storageChain?.namespace === ChainNamespace.evm) {\n if (privyWalletEVM) {\n setWallet(privyWalletEVM);\n setConnectedChain(privyWalletEVM.chain);\n setNamespace(ChainNamespace.evm);\n } else {\n setNullWalletStatus();\n }\n }\n if (storageChain?.namespace === ChainNamespace.solana) {\n if (privyWalletSOL) {\n setWallet(privyWalletSOL);\n setConnectedChain(privyWalletSOL.chain);\n setNamespace(ChainNamespace.solana);\n } else {\n setNullWalletStatus();\n }\n }\n }, [connectorKey, privyWalletEVM, privyWalletSOL, storageChain]);\n\n useEffect(() => {\n if (connectorKey === WalletType.PRIVY) {\n return;\n }\n // handle non-privy wallet connect\n console.log(\"xxxx non-privy\", {\n connectorKey,\n storageChain,\n walletEVM,\n walletSOL,\n });\n\n if (storageChain?.namespace === ChainNamespace.evm) {\n if (isConnectedEVM && walletEVM) {\n setWallet(walletEVM);\n setConnectedChain(connectedChainEvm);\n setNamespace(ChainNamespace.evm);\n } else {\n setNullWalletStatus();\n }\n }\n if (storageChain?.namespace === ChainNamespace.solana) {\n if (isConnectedSOL && walletSOL) {\n setWallet(walletSOL);\n setConnectedChain(connectedChainSOL);\n setNamespace(ChainNamespace.solana);\n } else {\n setNullWalletStatus();\n }\n }\n }, [\n connectorKey,\n storageChain,\n walletEVM,\n walletSOL,\n isConnectedEVM,\n isConnectedSOL,\n ]);\n\n return {\n connect,\n wallet,\n connectedChain,\n setChain,\n namespace,\n switchWallet,\n disconnect,\n };\n}\n","import { useConnection, useWallet } from \"@solana/wallet-adapter-react\";\nimport React, {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { ChainNamespace } from \"@orderly.network/types\";\nimport { WalletAdapterNetwork, WalletName } from \"@solana/wallet-adapter-base\";\nimport { useWalletConnectorPrivy } from \"../provider\";\nimport { SolanaChainsMap } from \"../types\";\nimport { useStorageLedgerAddress } from \"@orderly.network/hooks\";\n\ninterface SolanaWalletContextValue {\n wallets: any[];\n connectedChain: { id: number; namespace: ChainNamespace } | null;\n connect: (walletName: string) => Promise<any>;\n wallet: any;\n disconnect: () => void;\n isConnected: boolean;\n}\n\nconst SolanaWalletContext = createContext<SolanaWalletContextValue | null>(\n null\n);\n\nexport const SolanaWalletProvider: React.FC<{ children: React.ReactNode }> = ({\n children,\n}) => {\n const { setLedgerAddress } = useStorageLedgerAddress();\n const [wallet, setWallet] = useState<any>();\n const { network, solanaInfo, connectorWalletType } = useWalletConnectorPrivy();\n const {\n wallets,\n select,\n connect: connectSolana,\n wallet: walletSolana,\n publicKey,\n signMessage,\n signTransaction,\n sendTransaction,\n disconnect: disconnectSolana,\n } = connectorWalletType.disableSolana ? {\n wallets: [],\n select: () => Promise.resolve(),\n connect: () => Promise.resolve(),\n wallet: null,\n publicKey: null,\n signMessage: () => Promise.resolve(),\n signTransaction: () => Promise.resolve(),\n sendTransaction: () => Promise.resolve(),\n disconnect: () => Promise.resolve(),\n } : useWallet();\n\n const solanaPromiseRef = useRef<{\n walletSelect: Promise<any> | null;\n connect: Promise<any> | null;\n walletSelectResolve: (value: any) => void;\n walletSelectReject: (value: any) => void;\n connectResolve: (value: any) => void;\n connectReject: (value: any) => void;\n }>({\n walletSelect: null,\n connect: null,\n walletSelectResolve: () => {},\n walletSelectReject: () => {},\n connectReject: () => {},\n connectResolve: () => {},\n });\n\n const isManual = useRef(false);\n\n const initPromiseRef = () => {\n solanaPromiseRef.current.walletSelectResolve = () => {};\n solanaPromiseRef.current.walletSelectReject = () => {};\n solanaPromiseRef.current.connectReject = () => {};\n solanaPromiseRef.current.connectReject = () => {};\n solanaPromiseRef.current.connect = null;\n solanaPromiseRef.current.walletSelect = null;\n solanaPromiseRef.current.walletSelect = new Promise((resolve, reject) => {\n solanaPromiseRef.current.walletSelectResolve = resolve;\n solanaPromiseRef.current.walletSelectReject = reject;\n });\n solanaPromiseRef.current.connect = new Promise((resolve, reject) => {\n solanaPromiseRef.current.connectResolve = resolve;\n solanaPromiseRef.current.connectReject = reject;\n });\n };\n\n const disconnect = () => {\n disconnectSolana().then(() => {\n setWallet(undefined);\n });\n };\n\n const connect = async (walletName: string) => {\n initPromiseRef();\n isManual.current = true;\n if (!solanaPromiseRef.current) {\n return;\n }\n if (!walletSolana) {\n select(walletName as WalletName);\n } else {\n solanaPromiseRef.current.walletSelectResolve(walletSolana);\n if (!publicKey) {\n try {\n await connectSolana();\n } catch (e) {\n solanaPromiseRef.current.connectReject(e);\n }\n } else {\n solanaPromiseRef.current.connectResolve({\n userAddress: publicKey.toBase58(),\n signMessage,\n sendTransaction,\n signTransaction,\n });\n }\n }\n\n return Promise.all([\n solanaPromiseRef.current.walletSelect,\n solanaPromiseRef.current.connect,\n ])\n .then(\n ([\n connectedWallet,\n { userAddress, signMessage, signTransaction, sendTransaction },\n ]) => {\n const tempWallet = {\n label: connectedWallet.adapter.name,\n icon: \"\",\n provider: {\n rpcUrl: solanaInfo?.rpcUrl ?? null,\n network: solanaInfo?.network ?? WalletAdapterNetwork.Devnet,\n signMessage: signMessage,\n signTransaction: signTransaction,\n sendTransaction,\n },\n accounts: [\n {\n address: userAddress,\n },\n ],\n chains: [\n {\n id: SolanaChainsMap.get(network)!,\n namespace: ChainNamespace.solana,\n },\n ],\n chain: {\n id: SolanaChainsMap.get(network)!,\n namespace: ChainNamespace.solana,\n },\n };\n if (connectedWallet.adapter.name === \"Ledger\") {\n setLedgerAddress(userAddress);\n }\n isManual.current = false;\n setWallet(tempWallet);\n }\n )\n .catch((e) => {\n console.error(\"connect solana wallet error\", e);\n return Promise.reject(e);\n });\n };\n\n const connectedChain = useMemo(() => {\n if (!publicKey) {\n return null;\n }\n return {\n id: SolanaChainsMap.get(network)!,\n namespace: ChainNamespace.solana,\n };\n }, [publicKey]);\n\n const isConnected = useMemo(() => {\n return !!publicKey;\n }, [publicKey]);\n\n useEffect(() => {\n if (!walletSolana) {\n return;\n }\n if (isManual.current && solanaPromiseRef.current) {\n solanaPromiseRef.current.walletSelectResolve(walletSolana);\n connectSolana().then();\n }\n if (!publicKey) {\n connectSolana().then();\n return;\n }\n if (isManual.current && solanaPromiseRef.current) {\n solanaPromiseRef.current.connectResolve({\n userAddress: publicKey?.toBase58(),\n signMessage,\n sendTransaction,\n });\n return;\n }\n setWallet({\n label: walletSolana.adapter.name,\n icon: \"\",\n provider: {\n rpcUrl: solanaInfo?.rpcUrl ?? null,\n network: solanaInfo?.network ?? WalletAdapterNetwork.Devnet,\n signMessage,\n signTransaction,\n sendTransaction,\n },\n accounts: [\n {\n address: publicKey.toBase58(),\n },\n ],\n chains: [\n {\n id: SolanaChainsMap.get(network)!,\n namespace: ChainNamespace.solana,\n },\n ],\n chain: {\n id: SolanaChainsMap.get(network)!,\n namespace: ChainNamespace.solana,\n },\n });\n }, [\n publicKey,\n walletSolana,\n signMessage,\n signTransaction,\n sendTransaction,\n solanaInfo,\n ]);\n\n const value = useMemo(\n () => ({\n wallets,\n connectedChain,\n connect,\n wallet,\n disconnect,\n isConnected,\n }),\n [wallets, connectedChain, wallet, isConnected]\n );\n\n return (\n <SolanaWalletContext.Provider value={value}>\n {children}\n </SolanaWalletContext.Provider>\n );\n};\n\nexport function useSolanaWallet() {\n const context = useContext(SolanaWalletContext);\n if (!context) {\n throw new Error(\n \"useSolanaWallet must be used within a SolanaWalletProvider\"\n );\n }\n return context;\n}\n","import type { PropsWithChildren } from \"react\";\nimport { Adapter, WalletAdapter, WalletAdapterNetwork, WalletError } from \"@solana/wallet-adapter-base\";\nimport { Connector, CreateConnectorFn, Storage } from \"wagmi\";\nimport { PrivyClientConfig } from \"@privy-io/react-auth\";\nexport type SolanaInitialProps = PropsWithChildren<{\n network?: WalletAdapterNetwork;\n endPoint?: string;\n mainnetRpc?: string;\n devnetRpc?: string;\n wallets?: Adapter[];\n // wallet not ready error handle\n onError?: (error: WalletError, adapter?: Adapter) => void;\n}>;\n\nexport enum Network {\n mainnet = 'mainnet',\n testnet = 'testnet',\n}\n\n\nexport enum WalletType {\n EVM = 'EVM',\n SOL = 'SOL',\n PRIVY = 'privy',\n}\n\nexport interface ConnectProps {\n walletType: WalletType;\n extraType?: string;\n connector?: Connector;\n walletAdapter?: WalletAdapter;\n}\n\nexport interface InitPrivy {\n appid: string;\n config?: {\n appearance: Omit<PrivyClientConfig['appearance'], 'walletChainType' | 'walletList'>;\n loginMethods?: PrivyClientConfig['loginMethods'];\n };\n}\n\nexport interface InitWagmi {\n connectors?: CreateConnectorFn[];\n storage?: Storage;\n}\n\nexport interface InitSolana {\n mainnetRpc?: string;\n devnetRpc?: string;\n wallets: Adapter[];\n onError: (error: WalletError, adapter?: Adapter) => void;\n}\n\nexport const SolanaChains = new Map([[WalletAdapterNetwork.Devnet, 901901901], [WalletAdapterNetwork.Mainnet, 900900900]]);\n\nexport const SolanaChainsMap = new Map<Network | WalletAdapterNetwork, number>([\n [WalletAdapterNetwork.Devnet, 901901901],\n [Network.testnet, 901901901],\n [Network.mainnet, 900900900],\n [WalletAdapterNetwork.Mainnet, 900900900],\n]);\n\n\n\nexport interface ConnectorWalletType {\n disableWagmi?: boolean;\n disablePrivy?: boolean;\n disableSolana?: boolean;\n}\nexport enum WalletChainTypeEnum {\n onlyEVM = 'onlyEVM',\n onlySOL = 'onlySOL',\n EVM_SOL = 'EVM_SOL',\n}\nexport type WalletChainType = WalletChainTypeEnum;\n","import React, {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n usePrivy,\n useSolanaWallets,\n useWallets,\n WalletWithMetadata,\n} from \"@privy-io/react-auth\";\nimport { ChainNamespace, EnumTrackerKeys } from \"@orderly.network/types\";\nimport { useTrack, WalletState } from \"@orderly.network/hooks\";\nimport { SolanaChainsMap } from \"../types\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\nimport { useWalletConnectorPrivy } from \"../provider\";\n\ninterface WalletStatePrivy extends WalletState {\n chain: {\n id: number;\n namespace: ChainNamespace;\n };\n}\n\ninterface PrivyWalletContextValue {\n connect: () => void;\n walletEVM: WalletStatePrivy | null;\n walletSOL: WalletStatePrivy | null;\n isConnected: boolean;\n switchChain: (chainId: number) => Promise<any>;\n linkedAccount: { type: string; address: string | null } | null;\n exportWallet: any;\n createEvmWallet: any;\n createSolanaWallet: any;\n disconnect: () => Promise<void>;\n}\n\nconst getPrivyEmbeddedWalletChainId = (chainId: string) => {\n if (!chainId) {\n return null;\n }\n return parseInt(chainId.split(\"eip155:\")[1]);\n};\n\nconst PrivyWalletContext = createContext<PrivyWalletContextValue | null>(null);\n\nexport const PrivyWalletProvider: React.FC<{ children: React.ReactNode }> = ({\n children,\n}) => {\n const { network, solanaInfo, setSolanaInfo, connectorWalletType } = useWalletConnectorPrivy();\n const {\n login,\n logout,\n ready,\n authenticated,\n user,\n exportWallet: exportEvmWallet,\n createWallet: createEvmWallet,\n } = usePrivy();\n const { wallets: walletsEVM } = connectorWalletType.disablePrivy ? { wallets: [] } : useWallets();\n const connectedRef = useRef(false);\n\n const {\n ready: solanaReady,\n wallets: walletsSOL,\n createWallet: createSolanaWallet,\n exportWallet: exportSolanaWallet,\n } = connectorWalletType.disablePrivy ? { ready: false, wallets: [], createWallet: () => Promise.resolve(), exportWallet: () => Promise.resolve() } : useSolanaWallets();\n\n const [walletEVM, setWalletEVM] = useState<WalletStatePrivy | null>(null);\n const [walletSOL, setWalletSOL] = useState<WalletStatePrivy | null>(null);\n\n const { track } = useTrack();\n\n const linkedAccount = useMemo(() => {\n if (user && user.linkedAccounts) {\n const account = user.linkedAccounts\n .filter((item) => item.type !== \"wallet\")\n .sort(\n (a, b) =>\n (b.latestVerifiedAt?.getTime() ?? 0) -\n (a.latestVerifiedAt?.getTime() ?? 0)\n )[0];\n let address = null;\n if (account.type === \"email\") {\n address = account.address;\n } else if (account.type === \"twitter_oauth\") {\n address = `@${account.username}`;\n } else if (account.type === \"google_oauth\") {\n address = `@${account.name}`;\n }\n return {\n type: account.type,\n address: address,\n };\n }\n return null;\n }, [user]);\n\n const switchChain = (chainId: number) => {\n const wallet = walletsEVM[0];\n if (wallet) {\n return wallet.switchChain(chainId);\n }\n return Promise.reject(\"no wallet\");\n };\n\n const connect = () => {\n login();\n };\n\n const disconnect = () => {\n return logout();\n };\n\n const exportWallet = (namespace: ChainNamespace) => {\n console.log(\"xxxx export wallet\", {\n namespace,\n });\n if (namespace === ChainNamespace.evm) {\n track(EnumTrackerKeys.clickExportPrivateKey, {\n type: \"evm\",\n });\n return exportEvmWallet();\n } else if (namespace === ChainNamespace.solana) {\n track(EnumTrackerKeys.clickExportPrivateKey, {\n type: \"solana\",\n });\n return exportSolanaWallet();\n }\n return Promise.reject(\"no namespace\");\n };\n\n const isConnected = useMemo(() => {\n if (ready && authenticated) {\n return true;\n }\n return false;\n }, [ready, authenticated]);\n\n useEffect(() => {\n if (!authenticated || !walletsEVM || !walletsEVM[0]) {\n setWalletEVM(null);\n return;\n }\n const wallet = walletsEVM[0];\n wallet.getEthereumProvider().then((provider: any) => {\n setWalletEVM({\n label: \"privy\",\n icon: \"\",\n provider: provider,\n accounts: [\n {\n address: wallet.address,\n },\n ],\n chains: [\n {\n id: getPrivyEmbeddedWalletChainId(wallet.chainId) ?? 1,\n namespace: ChainNamespace.evm,\n },\n ],\n chain: {\n id: getPrivyEmbeddedWalletChainId(wallet.chainId) ?? 1,\n namespace: ChainNamespace.evm,\n },\n });\n });\n }, [walletsEVM, authenticated]);\n\n useEffect(() => {\n // console.log('Solana wallet effect triggered:', {\n // authenticated,\n // solanaReady,\n // user,\n // walletsSOL,\n // });\n if (!authenticated) {\n setWalletSOL(null);\n return;\n }\n if (!solanaReady) {\n return;\n }\n if (!user) {\n return;\n }\n const embededSolanaWallet = (\n user?.linkedAccounts as WalletWithMetadata[]\n ).find(\n (item: WalletWithMetadata) =>\n item.chainType === \"solana\" && item.connectorType === \"embedded\"\n );\n\n if (!embededSolanaWallet) {\n createSolanaWallet().then();\n return;\n }\n\n if (!walletsSOL || !walletsSOL[0]) {\n return;\n }\n\n const wallet = walletsSOL.find((w: any) => w.connectorType === \"embedded\");\n if (wallet) {\n if (walletSOL && wallet.address === walletSOL.accounts[0].address) {\n if (walletSOL.chain.id === SolanaChainsMap.get(network)!) {\n return;\n }\n }\n\n setWalletSOL({\n label: \"privy\",\n icon: \"\",\n provider: {\n signMessage: wallet.signMessage,\n signTransaction: wallet.signTransaction,\n sendTransaction: wallet.sendTransaction,\n network: solanaInfo?.network ?? WalletAdapterNetwork.Devnet,\n rpcUrl: solanaInfo?.rpcUrl ?? undefined,\n },\n accounts: [\n {\n address: wallet.address,\n },\n ],\n chains: [\n {\n id: SolanaChainsMap.get(network)!,\n namespace: ChainNamespace.solana,\n },\n ],\n chain: {\n id: SolanaChainsMap.get(network)!,\n namespace: ChainNamespace.solana,\n },\n });\n }\n }, [\n walletsSOL,\n authenticated,\n createSolanaWallet,\n solanaReady,\n user,\n walletSOL,\n network,\n solanaInfo,\n ]);\n\n useEffect(() => {\n if (isConnected && linkedAccount) {\n if (connectedRef.current) {\n return;\n }\n connectedRef.current = true;\n track(EnumTrackerKeys.socialLoginSuccess, {\n type: linkedAccount.type,\n address: linkedAccount.address,\n });\n }\n }, [isConnected, linkedAccount, connectedRef]);\n\n const value = useMemo(\n () => ({\n connect,\n walletEVM,\n walletSOL,\n isConnected,\n disconnect,\n switchChain,\n linkedAccount,\n exportWallet,\n createEvmWallet,\n createSolanaWallet,\n }),\n [\n connect,\n walletEVM,\n walletSOL,\n isConnected,\n disconnect,\n switchChain,\n linkedAccount,\n exportWallet,\n createEvmWallet,\n createSolanaWallet,\n ]\n );\n\n return (\n <PrivyWalletContext.Provider value={value}>\n {children}\n </PrivyWalletContext.Provider>\n );\n};\n\nexport function usePrivyWallet() {\n const context = useContext(PrivyWalletContext);\n if (!context) {\n throw new Error(\"usePrivyWallet must be used within a PrivyWalletProvider\");\n }\n return context;\n}\n","import React from \"react\";\nimport { getWalletIcon } from \"../util\";\nimport { Connector } from \"wagmi\";\nimport { cn } from \"@orderly.network/ui\";\nimport { WalletAdapter } from \"@solana/wallet-adapter-base\";\nexport function RenderPrivyTypeIcon({\n type,\n size,\n black,\n}: {\n type: string;\n size: number;\n black?: boolean;\n}) {\n if (type === \"email\") {\n return (\n <img\n src={`https://oss.orderly.network/static/sdk/privy/email${\n black ? \"-black\" : \"\"\n }.svg`}\n width={size}\n />\n );\n }\n if (type === \"google_oauth\") {\n return (\n <img\n src=\"https://oss.orderly.network/static/sdk/privy/google.svg\"\n width={size}\n />\n );\n }\n if (type === \"twitter_oauth\") {\n return (\n <img\n src={`https://oss.orderly.network/static/sdk/privy/twitter${\n black ? \"-black\" : \"\"\n }.svg`}\n width={size}\n />\n );\n }\n return (\n <img\n src={`https://oss.orderly.network/static/sdk/privy/email${\n black ? \"-black\" : \"\"\n }.svg`}\n width={size}\n />\n );\n}\nexport function RenderWalletIcon({\n connector,\n}: {\n connector: Connector | WalletAdapter;\n}) {\n const icon = connector.icon\n ? connector.icon\n : getWalletIcon((connector as Connector).type);\n return (\n <div className=\"oui-w-[18px] oui-h-[18px] oui-flex oui-items-center oui-justify-center\">\n <img\n className={cn(\n connector.icon\n ? \"oui-w-[12px] oui-h-[12px]\"\n : \"oui-w-[18px] oui-h-[18px]\"\n )}\n src={icon}\n alt={connector.name}\n />\n </div>\n );\n}\n","import { Connector } from \"wagmi\";\n\n// evm wallets icon map\nconst WALLET_ICONS: Record<string, string> = {\n 'metamask': 'https://oss.orderly.network/static/sdk/evm_wallets/metamask.png',\n 'walletconnect': 'https://oss.orderly.network/static/sdk/evm_wallets/walletConnect.png',\n 'binance': 'https://oss.orderly.network/static/sdk/evm_wallets/binance.png',\n 'ledger': 'https://oss.orderly.network/static/sdk/evm_wallets/ledger.png',\n 'coinbase': 'https://oss.orderly.network/static/sdk/evm_wallets/coinbase.png',\n 'magic': 'https://oss.orderly.network/static/sdk/evm_wallets/magic.png',\n 'trezor': 'https://oss.orderly.network/static/sdk/evm_wallets/trezor.png',\n 'exodus': 'https://oss.orderly.network/static/sdk/evm_wallets/exodus.png',\n 'frame': 'https://oss.orderly.network/static/sdk/evm_wallets/frame.png',\n 'rabby': 'https://oss.orderly.network/static/sdk/evm_wallets/rabby.png',\n\n};\nexport const getWalletIcon = (type: string): string | undefined => {\n\n\n return WALLET_ICONS[type.toLowerCase()]\n};","import React from \"react\";\nimport { useWagmiWallet } from \"../providers/wagmiWalletProvider\";\nimport { useSolanaWallet } from \"../providers/solanaWalletProvider\";\nimport { WalletCard } from \"./walletCard\";\nimport { useWallet } from \"../hooks/useWallet\";\nimport { ChainNamespace } from \"@orderly.network/types\";\nimport { AddSolanaWallet } from \"./addSolanaWallet\";\nimport { AddEvmWallet } from \"./addEvmWallet\";\nimport { WalletChainTypeEnum, WalletType } from \"../types\";\nimport { useWalletConnectorPrivy } from \"../provider\";\nexport function RenderNoPrivyWallet() {\n const { wallet: walletInWagmi, isConnected: isConnectedEvm } =\n useWagmiWallet();\n const { wallet: walletInSolana, isConnected: isConnectedSolana } =\n useSolanaWallet();\n const { namespace, switchWallet } = useWallet();\n console.log(\"xxxx RenderNoPrivyWallet\", {\n walletInWagmi,\n walletInSolana,\n isConnectedEvm,\n isConnectedSolana,\n });\n const { walletChainType, connectorWalletType } = useWalletConnectorPrivy();\n if (walletChainType === WalletChainTypeEnum.EVM_SOL) {\n if (isConnectedEvm && isConnectedSolana) {\n return (\n <div className=\"oui-flex oui-flex-col oui-gap-5\">\n {!connectorWalletType.disableWagmi && (\n <WalletCard\n type={WalletType.EVM}\n address={walletInWagmi?.accounts[0].address}\n isActive={namespace === ChainNamespace.evm}\n onActiveChange={() => {\n switchWallet(ChainNamespace.evm);\n }}\n isPrivy={false}\n isBoth={true}\n />\n )}\n {!connectorWalletType.disableSolana && (\n <WalletCard\n type={WalletType.SOL}\n address={walletInSolana?.accounts[0].address}\n isActive={namespace === ChainNamespace.solana}\n onActiveChange={() => {\n switchWallet(ChainNamespace.solana);\n }}\n isPrivy={false}\n isBoth={true}\n />\n )}\n </div>\n );\n }\n\n if (isConnectedEvm && !isConnectedSolana) {\n return (\n <div className=\"\">\n <WalletCard\n type={WalletType.EVM}\n address={walletInWagmi?.accounts[0].address}\n isActive={namespace === ChainNamespace.evm}\n onActiveChange={() => {\n switchWallet(ChainNamespace.evm);\n }}\n isPrivy={false}\n isBoth={false}\n />\n {!connectorWalletType.disableSolana && (\n <>\n <div className=\"oui-h-[1px] oui-bg-line oui-my-5\" />\n <AddSolanaWallet />\n </>\n )}\n </div>\n );\n }\n if (!isConnectedEvm && isConnectedSolana) {\n return (\n <div className=\"\">\n <WalletCard\n type={WalletType.SOL}\n address={walletInSolana?.accounts[0].address}\n isActive={namespace === ChainNamespace.solana}\n onActiveChange={() => {\n switchWallet(ChainNamespace.solana);\n }}\n isPrivy={false}\n isBoth={false}\n />\n {!connectorWalletType.disableWagmi && (\n <>\n <div className=\"oui-h-[1px] oui-bg-line oui-my-5\" />\n <AddEvmWallet />\n </>\n )}\n </div>\n );\n }\n }\n\n if (walletChainType === WalletChainTypeEnum.onlySOL) {\n if (isConnectedSolana) {\n return (\n <div className=\"\">\n <WalletCard\n type={WalletType.SOL}\n address={walletInSolana?.accounts[0].address}\n isActive={namespace === ChainNamespace.solana}\n onActiveChange={() => {\n switchWallet(ChainNamespace.solana);\n }}\n isPrivy={false}\n isBoth={false}\n />\n </div>\n );\n }\n }\n if (walletChainType === WalletChainTypeEnum.onlyEVM) {\n if (isConnectedEvm) {\n return (\n <div className=\"\">\n <WalletCard\n type={WalletType.EVM}\n address={walletInWagmi?.accounts[0].address}\n isActive={namespace === ChainNamespace.evm}\n onActiveChange={() => {\n switchWallet(ChainNamespace.evm);\n }}\n isPrivy={false}\n isBoth={false}\n />\n </div>\n );\n }\n }\n return;\n}\n","import React, { useState } from \"react\";\nimport {\n ChainIcon,\n Checkbox,\n cn,\n CopyIcon,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuPortal,\n DropdownMenuRoot,\n DropdownMenuTrigger,\n formatAddress,\n Popover,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { DisconnectIcon, MoreIcon } from \"./icons\";\nimport { useWalletConnectorPrivy } from \"../provider\";\nimport { usePrivyWallet } from \"../providers/privyWalletProvider\";\nimport { useWallet } from \"../hooks/useWallet\";\nimport { WalletType } from \"../types\";\nimport { useTranslation } from \"@orderly.network/i18n\";\ninterface WalletCardProps {\n type: WalletType;\n address: string;\n isActive: boolean;\n isPrivy?: boolean;\n isBoth?: boolean;\n onActiveChange: (active: boolean) => void;\n}\nexport function WalletCard(props: WalletCardProps) {\n const { t } = useTranslation();\n const copyAddress = async (address: string) => {\n await navigator.clipboard.writeText(address);\n toast.success(t(\"common.copy.copied\"));\n };\n\n return (\n <div\n className={cn(\n \"oui-rounded-2xl oui-relative oui-p-4 oui-h-[110px] oui-overflow-hidden\",\n props.type === WalletType.EVM ? \"oui-bg-[#283BEE]\" : \"oui-bg-[#630EAD]\",\n props.isActive &&\n props.type === WalletType.SOL &&\n props.isBoth &&\n \"oui-border-[2px] oui-border-[#faedff]\",\n props.isActive &&\n props.type === WalletType.EVM &&\n props.isBoth &&\n \"oui-border-[2px] oui-border-[#B9D1FF]\"\n )}\n >\n <div\n style={{\n position: \"absolute\",\n top: 0,\n right: -20,\n background:\n \"url('https://oss.orderly.network/static/sdk/wallet-card-bg.png')\",\n width: \"110px\",\n height: \"110px\",\n backgroundSize: \"contain\",\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"center\",\n zIndex: 0,\n }}\n />\n <div className=\"oui-relative oui-z-10 oui-flex oui-flex-col oui-justify-between oui-h-full\">\n <div className=\"oui-flex oui-items-center oui-justify-between\">\n <div className=\"oui-text-base-contrast oui-text-sm oui-font-semibold\">\n {formatAddress(props.address)}\n </div>\n <div className=\"oui-flex oui-items-center oui-justify-center oui-gap-1\">\n <Tooltip content={t(\"common.copy\")} className=\"oui-z-[65]\">\n <CopyIcon\n size={16}\n opacity={1}\n className=\"oui-text-base-contrast-80 oui-cursor-pointer hover:oui-text-base-contrast\"\n onClick={() => copyAddress(props.address)}\n />\n </Tooltip>\n {props.isPrivy ? (\n <PrivyWalletHandleOption\n address={props.address}\n type={props.type}\n />\n ) : (\n <NonPrivyWalletHandleOption walletType={props.type} />\n )}\n </div>\n </div>\n\n <div className=\"oui-flex oui-items-center oui-justify-between\">\n {props.type === WalletType.EVM ? (\n <div className=\"oui-flex oui-items-center oui-justify-center oui-gap-1\">\n <div className=\"oui-flex oui-items-center oui-justify-center oui-relative\">\n <div className=\"oui-flex oui-items-center oui-justify-center oui-h-[18px] \">\n <img\n src=\"https://oss.orderly.network/static/sdk/chains.png\"\n className=\"oui-h-[18px] oui-w-[49px] oui-relative oui-z-0\"\n />\n </div>\n <div className=\"oui-flex oui-items-center oui-justify-center oui-gap-1 oui-relative oui-left-[-9px]\">\n <div className=\"oui-rounded-full oui-bg-[#282e3a] oui-w-[18px] oui-h-[18px] oui-flex oui-items-center oui-justify-center\">\n <EVMChainPopover>\n <MoreIcon\n className=\"oui-text-base-contrast-54 hover:oui-text-base-contrast oui-h-3 oui-w-3 oui-relative oui-z-10\"\n style={{ zIndex: 1 }}\n />\n </EVMChainPopover>\n </div>\n <div className=\"oui-text-base-contrast oui-text-2xs oui-font-semibold\">\n EVM\n </div>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"oui-flex oui-items-center oui-justify-start oui-gap-1\">\n <div className=\"\">\n <img\n src=\"https://oss.orderly.network/static/sdk/solana-logo.png\"\n className=\"oui-w-4\"\n />\n </div>\n <div className=\"oui-text-base-contrast oui-text-2xs oui-font-semibold\">\n Solana\n </div>\n </div>\n )}\n {props.isBoth && (\n <div>\n <Checkbox\n checked={props.isActive}\n onCheckedChange={props.onActiveChange}\n />\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\nfunction NonPrivyWalletHandleOption({\n walletType,\n}: {\n walletType: WalletType;\n}) {\n const { disconnect } = useWallet();\n return (\n <div onClick={() => disconnect(walletType)}>\n <DisconnectIcon className=\"oui-text-base-contrast-80 oui-cursor-pointer hover:oui-text-base-contrast oui-w-4 oui-h-4\" />\n </div>\n );\n}\n\nfunction PrivyWalletHandleOption({\n address,\n type,\n}: {\n address: string;\n type: WalletType;\n}) {\n const { t } = useTranslation();\n const { exportWallet } = usePrivyWallet();\n return (\n <DropdownMenuRoot>\n <DropdownMenuTrigger asChild>\n <button>\n <MoreIcon className=\"oui-text-base-contrast-80 oui-cursor-pointer hover:oui-text-base-contrast\" />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuPortal>\n <DropdownMenuContent\n size={\"xl\"}\n align={\"end\"}\n side=\"top\"\n style={{ width: \"100px\" }}\n className={\"oui-p-1 oui-rounded oui-font-semibold oui-z-[65]\"}\n sideOffset={0}\n >\n <DropdownMenuItem\n className=\"oui-py-1 oui-px-2 oui-text-2xs oui-text-base-contrast-54 hover:oui-text-base-contrast oui-cursor-pointer\"\n onClick={() => {\n console.log(\"export wallet\");\n exportWallet(type);\n }}\n >\n <div>{t(\"common.export\")}</div>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenuPortal>\n </DropdownMenuRoot>\n );\n}\n\nexport function EVMChainPopover({ children }: { children: React.ReactNode }) {\n const { getChainsByNetwork } = useWalletConnectorPrivy();\n const [chains] = useState(getChainsByNetwork(\"mainnet\"));\n const [open, setOpen] = useState(false);\n const [visible, setVisible] = useState(true);\n const { t } = useTranslation();\n\n return (\n <Popover\n content={\n <div>\n <div className=\"oui-text-2xs oui-text-base-contrast oui-font-semibold\">\n {t(\"connector.supportedEvmChain\")}\n </div>\n <div className=\"oui-grid oui-grid-cols-3 oui-gap-y-3 oui-gap-x-2 oui-mt-3 oui-text-2xs oui-text-base-contrast-54\">\n {chains.map((item, key) => (\n <div\n key={key}\n className=\"oui-flex oui-items-center oui-justify-start oui-gap-1\"\n >\n <ChainIcon chainId={item.id} size=\"2xs\" />\n <div>{item.name}</div>\n </div>\n ))}\n </div>\n </div>\n }\n arrow={true}\n contentProps={{\n side: \"bottom\",\n align: \"center\",\n className: \"oui-p-2 oui-z-[65]\",\n }}\n >\n <button>{children}</button>\n </Popover>\n );\n}\n","import React, { FC, SVGProps } from \"react\";\n\nexport const MoreIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M8.00521 6.66797C8.74161 6.66797 9.33854 7.26464 9.33854 8.0013C9.33854 8.73797 8.74161 9.33464 8.00521 9.33464C7.26881 9.33464 6.67188 8.73797 6.67188 8.0013C6.67188 7.26464 7.26881 6.66797 8.00521 6.66797Z\" />\n <path d=\"M3.33333 6.66797C4.06973 6.66797 4.66667 7.26464 4.66667 8.0013C4.66667 8.73797 4.06973 9.33464 3.33333 9.33464C2.59693 9.33464 2 8.73797 2 8.0013C2 7.26464 2.59693 6.66797 3.33333 6.66797Z\" />\n <path d=\"M12.6666 6.66797C13.403 6.66797 14 7.26464 14 8.0013C14 8.73797 13.403 9.33464 12.6666 9.33464C11.9302 9.33464 11.3333 8.73797 11.3333 8.0013C11.3333 7.26464 11.9302 6.66797 12.6666 6.66797Z\" />\n </svg>\n);\nexport const DisconnectIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n {...props}\n >\n <g id=\"box-arrow-right\">\n <path\n id=\"Vector\"\n d=\"M1.99365 4.66056C1.99365 3.1879 3.18759 1.9939 4.66032 1.9939H7.32698C8.79965 1.9939 9.99365 3.1879 9.99365 4.66056C9.99365 5.02856 9.69498 5.32723 9.32698 5.32723C8.95898 5.32723 8.66032 5.02856 8.66032 4.66056C8.66032 3.92389 8.06365 3.32723 7.32698 3.32723H4.66032C3.92392 3.32723 3.32699 3.92389 3.32699 4.66056V11.3272C3.32699 12.0639 3.92392 12.6606 4.66032 12.6606H7.32698C8.06365 12.6606 8.66032 12.0639 8.66032 11.3272C8.66032 10.9592 8.95898 10.6606 9.32698 10.6606C9.69498 10.6606 9.99365 10.9592 9.99365 11.3272C9.99365 12.7999 8.79965 13.9939 7.32698 13.9939H4.66032C3.18759 13.9939 1.99365 12.7999 1.99365 11.3272V4.66056ZM6.66032 7.99389C6.66032 7.62589 6.95898 7.32722 7.32698 7.32722H12.369L11.0563 5.99389L11.9937 5.05656L14.473 7.51456C14.733 7.77523 14.733 8.21255 14.473 8.47322L11.9937 10.9312L11.0563 9.99389L12.369 8.66056H7.32698C6.95898 8.66056 6.66032 8.36189 6.66032 7.99389Z\"\n />\n </g>\n </svg>\n);\n\nexport const CloseIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <g id=\"x-square-fill\">\n <path\n id=\"Vector\"\n d=\"M5.83834 2.44141C3.9975 2.44141 2.505 3.93391 2.505 5.77474V14.1081C2.505 15.9489 3.9975 17.4414 5.83834 17.4414H14.1717C16.0125 17.4414 17.505 15.9489 17.505 14.1081V5.77474C17.505 3.93391 16.0125 2.44141 14.1717 2.44141H5.83834ZM7.505 6.60807C7.71834 6.60807 7.94083 6.67974 8.10417 6.84224L10.005 8.74307L11.9058 6.84224C12.0683 6.67974 12.2917 6.60807 12.505 6.60807C12.7183 6.60807 12.9408 6.67974 13.1042 6.84224C13.4292 7.16808 13.4292 7.71473 13.1042 8.04057L11.2033 9.94141L13.1042 11.8422C13.4292 12.1681 13.4292 12.7147 13.1042 13.0406C12.7783 13.3656 12.2317 13.3656 11.9058 13.0406L10.005 11.1397L8.10417 13.0406C7.77833 13.3656 7.23168 13.3656 6.90584 13.0406C6.58084 12.7147 6.58084 12.1681 6.90584 11.8422L8.80668 9.94141L6.90584 8.04057C6.58084 7.71473 6.58084 7.16808 6.90584 6.84224C7.06834 6.67974 7.29167 6.60807 7.505 6.60807Z\"\n />\n </g>\n </svg>\n);\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useSolanaWallet } from \"../providers/solanaWalletProvider\";\nimport {\n ChevronDownIcon,\n ChevronUpIcon,\n cn,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { useWallet } from \"../hooks/useWallet\";\nimport { useWalletConnectorPrivy } from \"../provider\";\nimport { ChainNamespace } from \"@orderly.network/types\";\nimport { WalletType } from \"../types\";\nimport { RenderWalletIcon } from \"./common\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport function AddSolanaWallet() {\n const { t } = useTranslation();\n const { wallets } = useSolanaWallet();\n const { connect } = useWallet();\n const [visible, setVisible] = useState(false);\n const onToggleVisibility = () => {\n setVisible(!visible);\n };\n const { targetNamespace } = useWalletConnectorPrivy();\n // TODO: need get value from useWalletConnectorPrivy\n const [open, setOpen] = useState(false);\n console.log(\"-- open and targetNamespace\", open, targetNamespace);\n\n useEffect(() => {\n let timer = 0;\n if (targetNamespace === ChainNamespace.solana) {\n timer = window.setTimeout(() => {\n setOpen(true);\n }, 200);\n }\n return () => {\n if (timer) {\n window.clearTimeout(timer);\n }\n };\n }, [targetNamespace]);\n useEffect(() => {\n if (open === false) {\n return;\n }\n const timeId = window.setTimeout(() => {\n setOpen(false);\n }, 5000);\n return () => {\n if (timeId) {\n window.clearTimeout(timeId);\n }\n };\n }, [open]);\n\n return (\n <div className=\"oui-bg-[#07080A] oui-rounded-[8px] oui-px-2 oui-py-[11px]\">\n <Tooltip\n className=\"oui-text-warning-darken oui-max-w-[200px] oui-z-[65]\"\n open={open}\n content=\"Connect an EVM-compatible wallet to continue using the EVM network.\"\n >\n <div className=\"oui-flex oui-items-center oui-justify-center oui-gap-1 \">\n <img\n src=\"https://oss.orderly.network/static/sdk/solana-logo.png\"\n className=\"oui-w-[15px] oui-h-[15px]\"\n />\n <div className=\"oui-text-base-contrast-80 oui-text-2xs oui-font-semibold\">\n {t(\"connector.addSolanaWallet\")}\n </div>\n\n <button onClick={onToggleVisibility}>\n {visible ? (\n <ChevronDownIcon\n size={16}\n opacity={1}\n className=\"oui-text-base-contrast-36\"\n />\n ) : (\n <ChevronUpIcon\n size={16}\n opacity={1}\n className=\"oui-text-base-contrast\"\n />\n )}\n </button>\n </div>\n </Tooltip>\n <div\n className={cn(\n \"oui-grid oui-grid-cols-2 oui-gap-[6px] oui-transition-height oui-duration-150 oui-overflow-hidden\",\n visible ? \"oui-max-h-0 oui-mt-0\" : \"oui-max-h-[400px] oui-mt-3\"\n )}\n >\n {wallets.map((item, index) => (\n <div\n key={index}\n className=\"oui-flex oui-items-center oui-justify-center oui-gap-1 oui-px-2 oui-py-[11px] oui-bg-[#131519] oui-cursor-pointer\"\n onClick={() =>\n connect({\n walletType: WalletType.SOL,\n walletAdapter: item.adapter,\n })\n }\n >\n <RenderWalletIcon connector={item.adapter} />\n <div className=\"oui-text-base-contrast oui-text-2xs\">\n {item.adapter.name}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n","import { cn } from \"@orderly.network/ui\";\nimport { Tooltip, ChevronDownIcon, ChevronUpIcon } from \"@orderly.network/ui\";\nimport React, { useEffect, useState } from \"react\";\nimport { useWagmiWallet } from \"../providers/wagmiWalletProvider\";\nimport { useWallet } from \"../hooks/useWallet\";\nimport { EVMChainPopover } from \"./walletCard\";\nimport { MoreIcon } from \"./icons\";\nimport { ChainNamespace } from \"@orderly.network/types\";\nimport { useWalletConnectorPrivy } from \"../provider\";\nimport { WalletType } from \"../types\";\nimport { getWalletIcon } from \"../util\";\nimport { RenderWalletIcon } from \"./common\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport function AddEvmWallet() {\n const { t } = useTranslation();\n const [visible, setVisible] = useState(false);\n const { connect } = useWallet();\n const [open, setOpen] = useState(false);\n const { connectors } = useWagmiWallet();\n const { targetNamespace } = useWalletConnectorPrivy();\n console.log(\"--connectors\", connectors);\n\n useEffect(() => {\n let timer = 0;\n if (targetNamespace === ChainNamespace.evm) {\n timer = window.setTimeout(() => {\n setOpen(true);\n }, 200);\n }\n return () => {\n if (timer) {\n window.clearTimeout(timer);\n }\n };\n }, [targetNamespace]);\n useEffect(() => {\n if (open === false) {\n return;\n }\n const timeId = window.setTimeout(() => {\n setOpen(false);\n }, 5000);\n return () => {\n if (timeId) {\n window.clearTimeout(timeId);\n }\n };\n }, [open]);\n\n return (\n <div className=\"oui-bg-[#07080A] oui-rounded-[8px] oui-px-2 oui-py-[11px]\">\n <Tooltip\n className=\"oui-text-warning-darken oui-max-w-[200px] oui-z-[65]\"\n open={open}\n content=\"Connect an EVM-compatible wallet to continue using the EVM network.\"\n >\n <div className=\"oui-flex oui-items-center oui-justify-center oui-gap-1 \">\n <div className=\"oui-flex oui-items-center oui-justify-center oui-gap-1\">\n <div className=\"oui-flex oui-items-center oui-justify-start oui-relative oui-w-[55px]\">\n <img\n src=\"https://oss.orderly.network/static/sdk/chains.png\"\n className=\"oui-h-[18px] oui-relative oui-z-0\"\n />\n <div className=\"oui-rounded-full oui-bg-[#282e3a] oui-w-[18px] oui-h-[18px] oui-flex oui-items-center oui-justify-center oui-absolute oui-right-0\">\n <EVMChainPopover>\n <MoreIcon\n className=\"oui-text-base-contrast-54 hover:oui-text-base-contrast oui-h-3 oui-w-3 oui-relative oui-z-10\"\n style={{ zIndex: 1 }}\n />\n </EVMChainPopover>\n </div>\n </div>\n </div>\n <div className=\"oui-text-base-contrast-80 oui-text-2xs oui-font-semibold\">\n {t(\"connector.addEvmWallet\")}\n </div>\n\n <button onClick={() => setVisible(!visible)}>\n {visible ? (\n <ChevronDownIcon\n size={16}\n opacity={1}\n className=\"oui-text-base-contrast-36\"\n />\n ) : (\n <ChevronUpIcon\n size={16}\n opacity={1}\n className=\"oui-text-base-contrast\"\n />\n )}\n </button>\n </div>\n </Tooltip>\n <div\n className={cn(\n \"oui-grid oui-grid-cols-2 oui-gap-[6px] oui-transition-height oui-duration-150 oui-overflow-hidden\",\n visible ? \"oui-max-h-0 oui-mt-0\" : \"oui-max-h-[400px] oui-mt-3\"\n )}\n >\n {connectors.map((item, index) => (\n <div\n key={index}\n className=\"oui-flex oui-items-center oui-justify-center oui-gap-1 oui-px-2 oui-py-[11px] oui-bg-[#131519] oui-cursor-pointer oui-text-2xs\"\n onClick={() =>\n connect({ walletType: WalletType.EVM, connector: item })\n }\n >\n <RenderWalletIcon connector={item} />\n <div className=\"oui-text-base-contrast\">{item.name}</div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n","import { useMediaQuery } from \"@orderly.network/hooks\";\nimport { cn, useScreen } from \"@orderly.network/ui\";\nimport React, { useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\ninterface DrawerProps {\n children: React.ReactNode;\n isOpen: boolean;\n onClose: () => void;\n}\n\nexport function Drawer({ children, isOpen, onClose }: DrawerProps) {\n const [windowHeight, setWindowHeight] = useState(0);\n const { isMobile } = useScreen();\n\n useEffect(() => {\n setWindowHeight(window.innerHeight);\n\n const handleResize = () => {\n setWindowHeight(window.innerHeight);\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n if (isOpen) {\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"auto\";\n }\n\n return () => {\n document.body.style.overflow = \"auto\";\n window.removeEventListener(\"resize\", handleResize);\n };\n }, [isOpen, isMobile]);\n\n if (!isOpen) return null;\n\n const drawerHeight = isMobile ? windowHeight : windowHeight - 72 - 24;\n\n return createPortal(\n <div className=\"oui-fixed oui-inset-0 oui-z-[60]\">\n <div\n className=\"oui-absolute oui-inset-0 oui-bg-[rgba(0,0,0,0.48)] oui-transition-opacity\"\n onClick={onClose}\n />\n\n <div\n style={{ height: `${drawerHeight}px` }}\n className={cn(\n \"oui-overflow-hidden\",\n \"oui-fixed oui-top-0 oui-right-0\",\n \"oui-bg-[#131519] oui-shadow-lg\",\n \"oui-border oui-border-line-12\",\n \"oui-w-[276px]\",\n \"md:oui-w-[300px]\",\n \"md:oui-top-1/2 md:oui-translate-y-[-50%]\",\n \"oui-rounded-0 md:oui-rounded-2xl\",\n \"md:oui-rounded-0\",\n \"oui-p-4\",\n \"oui-transform oui-transition-transform oui-duration-300 oui-ease-in-out\",\n \"oui-flex oui-flex-col oui-justify-between\",\n \"oui-m-0 md:oui-m-3\",\n isOpen ? \"oui-translate-x-0\" : \"oui--translate-x-full\"\n )}\n >\n {children}\n </div>\n </div>,\n document.body\n );\n}\n","import React, { useMemo, useState } from \"react\";\nimport { usePrivyWallet } from \"../providers/privyWalletProvider\";\nimport { WalletChainTypeEnum, WalletType } from \"../types\";\nimport { useWallet } from \"../hooks/useWallet\";\nimport { RenderPrivyTypeIcon } from \"./common\";\nimport { cn, ExclamationFillIcon } from \"@orderly.network/ui\";\nimport { EVMChainPopover, WalletCard } from \"./walletCard\";\nimport { ChainNamespace } from \"@orderly.network/types\";\nimport { MoreIcon } from \"./icons\";\nimport { useWalletConnectorPrivy } from \"../provider\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nfunction NoWallet() {\n const { walletChainType } = useWalletConnectorPrivy();\n const { t } = useTranslation();\n return (\n <div className=\"oui-flex oui-flex-col oui-justify-center oui-items-center oui-w-full oui-mt-5\">\n <div className=\"oui-flex oui-flex-col oui-justify-center oui-items-center oui-w-full oui-gap-3\">\n <div className=\"oui-flex oui-flex-col oui-justify-center oui-items-center oui-gap-1 oui-border-[1px] oui-border-line-12 oui-rounded-[8px] oui-px-2 oui-py-[13px] oui-w-full \">\n <img\n src=\"https://oss.orderly.network/static/sdk/privy/no-wallet.png\"\n className=\"oui-w-[64px] oui-h-[64px]\"\n />\n <div className=\"oui-text-base-contrast-36 oui-text-2xs oui-font-semibold\">\n {t(\"connector.noWallet\")}\n </div>\n </div>\n <div className=\"oui-flex oui-items-start oui-gap-1 oui-px-2 oui-py-[6px] oui-bg-[rgba(232,136,0,0.15)] oui-rounded-[4px] \">\n <ExclamationFillIcon\n size={10}\n className=\"oui-mt-1 oui-w-[10px] oui-h-[10px] oui-text-warning-darken oui-flex-shrink-0\"\n />\n <div className=\"oui-text-2xs oui-text-warning-darken\">\n {t(\"connector.noWallet.description\")}\n </div>\n </div>\n </div>\n <div className=\"oui-h-[1px] oui-bg-line oui-my-5 oui-w-full\" />\n <div className=\"oui-flex oui-flex-col oui-gap-2 oui-w-full\">\n {walletChainType === WalletChainTypeEnum.EVM_SOL && (\n <>\n <CreateEVMWallet />\n <CreateSOLWallet />\n </>\n )}\n {walletChainType === WalletChainTypeEnum.onlyEVM && <CreateEVMWallet />}\n {walletChainType === WalletChainTypeEnum.onlySOL && <CreateSOLWallet />}\n </div>\n </div>\n );\n}\n\nfunction CreateEVMWallet() {\n const { t } = useTranslation();\n const { createEvmWallet } = usePrivyWallet();\n const [loading, setLoading] = useState(false);\n const doCreate = () => {\n if (loading) {\n return;\n }\n setLoading(true);\n createEvmWallet()\n .then(() => {\n setLoading(false);\n })\n .catch((e: any) => {\n console.warn(\"createEvmWallet error\", e);\n setLoading(false);\n });\n };\n return (\n <div className=\"oui-bg-[#07080A] oui-rounded-[8px] oui-px-2 oui-py-[11px] oui-w-full\">\n <div className=\"oui-flex oui-items-center oui-justify-center oui-gap-1 \">\n <div className=\"oui-flex oui-items-center oui-justify-center oui-gap-1\">\n <div className=\"oui-flex oui-items-center oui-justify-start oui-relative oui-w-[55px]\">\n <img\n src=\"https://oss.orderly.network/static/sdk/chains.png\"\n className=\"oui-h-[18px] oui-relative oui-z-0\"\n />\n <div className=\"oui-rounded-full oui-bg-[#282e3a] oui-w-[18px] oui-h-[18px] oui-flex oui-items-center oui-justify-center oui-absolute oui-right-0\">\n <EVMChainPopover>\n <MoreIcon\n className=\"oui-text-base-contrast-54 hover:oui-text-base-contrast oui-h-3 oui-w-3 oui-relative oui-z-10\"\n style={{ zIndex: 1 }}\n />\n </EVMChainPopover>\n </div>\n </div>\n </div>\n <div\n className={cn(\n \"oui-text-base-contrast-80 oui-text-2xs oui-font-semibold oui-cursor-pointer\",\n loading && \"oui-opacity-50\"\n )}\n onClick={doCreate}\n >\n {t(\"connector.createEvmWallet\")}\n </div>\n </div>\n </div>\n );\n}\n\nfunction CreateSOLWallet() {\n const { t } = useTranslation();\n const { createSolanaWallet } = usePrivyWallet();\n const [loading, setLoading] = useState(false);\n const doCreate = () => {\n if (loading) {\n return;\n }\n setLoading(true);\n createSolanaWallet()\n .then(() => {\n setLoading(false);\n })\n .catch((e: any) => {\n console.warn(\"create solana wallet error\", e);\n setLoading(false);\n });\n };\n return (\n <div className=\"oui-bg-[#07080A] oui-rounded-[8px] oui-px-2 oui-py-[11px] oui-w-full\">\n <div className=\"oui-flex oui-items-center oui-justify-center oui-gap-1 \">\n <img\n src=\"https://oss.orderly.network/static/sdk/solana-logo.png\"\n className=\"oui-w-[15px] oui-h-[15px]\"\n />\n <div\n className={cn(\n \"oui-text-base-contrast-80 oui-text-2xs oui-font-semibold oui-cursor-pointer\",\n loading && \"oui-opacity-50\"\n )}\n onClick={doCreate}\n >\n {t(\"connector.createSolanaWallet\")}\n </div>\n </div>\n </div>\n );\n}\n\nenum PrivyWalletRenderType {\n onlyEVM = \"onlyEVM\",\n onlySOL = \"onlySOL\",\n both = \"both\",\n noWallet = \"noWallet\",\n}\n\nexport function RenderPrivyWallet() {\n const { t } = useTranslation();\n const { walletChainType } = useWalletConnectorPrivy();\n const { walletEVM, walletSOL, linkedAccount } = usePrivyWallet();\n const { namespace, switchWallet, disconnect } = useWallet();\n const renderWalletType = useMemo(() => {\n if (walletChainType === WalletChainTypeEnum.onlyEVM) {\n if (walletEVM && walletEVM.accounts.length) {\n return PrivyWalletRenderType.onlyEVM;\n }\n return PrivyWalletRenderType.noWallet;\n }\n if (walletChainType === WalletChainTypeEnum.onlySOL) {\n if (walletSOL && walletSOL.accounts.length) {\n return PrivyWalletRenderType.onlySOL;\n }\n return PrivyWalletRenderType.noWallet;\n }\n if (\n (!walletEVM || !walletEVM.accounts.length) &&\n (!walletSOL || !walletSOL.accounts.length)\n ) {\n return PrivyWalletRenderType.noWallet;\n }\n if (\n walletEVM &&\n walletEVM.accounts.length &&\n (!walletSOL || !walletSOL.accounts.length)\n ) {\n return PrivyWalletRenderType.onlyEVM;\n }\n if (\n (!walletEVM || !walletEVM.accounts.length) &&\n walletSOL &&\n walletSOL.accounts.length\n ) {\n return PrivyWalletRenderType.onlySOL;\n }\n return PrivyWalletRenderType.both;\n }, [walletEVM, walletSOL, walletChainType]);\n return (\n <div>\n <div className=\"oui-flex oui-justify-between oui-items-center\">\n {linkedAccount && (\n <div className=\"oui-flex oui-items-center oui-justify-start oui-gap-2 oui-text-base-contrast\">\n <div>\n <RenderPrivyTypeIcon type={linkedAccount.type} size={24} />\n </div>\n <div className=\"oui-text-xs\">{linkedAccount.address}</div>\n </div>\n )}\n <div\n className=\"oui-cursor-pointer oui-text-primary oui-text-2xs oui-font-semibold\"\n onClick={() => disconnect(WalletType.PRIVY)}\n >\n {t(\"connector.logout\")}\n </div>\n </div>\n {renderWalletType === PrivyWalletRenderType.noWallet && <NoWallet />}\n\n {renderWalletType === PrivyWalletRenderType.both && (\n <div className=\"oui-flex oui-flex-col oui-gap-5 oui-mt-5\">\n {walletChainType === WalletChainTypeEnum.EVM_SOL && (\n <>\n <WalletCard\n type={WalletType.EVM}\n address={walletEVM?.accounts[0].address ?? \"\"}\n isActive={namespace === ChainNamespace.evm}\n onActiveChange={() => {\n switchWallet(ChainNamespace.evm);\n }}\n isPrivy={true}\n isBoth={true}\n />\n <WalletCard\n type={WalletType.SOL}\n address={walletSOL?.accounts[0].address ?? \"\"}\n isActive={namespace === ChainNamespace.solana}\n onActiveChange={() => {\n switchWallet(ChainNamespace.solana);\n }}\n isPrivy={true}\n isBoth={true}\n />\n </>\n )}\n {walletChainType === WalletChainTypeEnum.onlyEVM && (\n <WalletCard\n type={WalletType.EVM}\n address={walletEVM?.accounts[0].address ?? \"\"}\n isActive={namespace === ChainNamespace.evm}\n onActiveChange={() => {\n switchWallet(ChainNamespace.evm);\n }}\n isPrivy={true}\n isBoth={false}\n />\n )}\n {walletChainType === WalletChainTypeEnum.onlySOL && (\n <WalletCard\n type={WalletType.SOL}\n address={walletSOL?.accounts[0].address ?? \"\"}\n isActive={namespace === ChainNamespace.solana}\n onActiveChange={() => {\n switchWallet(ChainNamespace.solana);\n }}\n isPrivy={true}\n isBoth={false}\n />\n )}\n </div>\n )}\n {renderWalletType === PrivyWalletRenderType.onlyEVM && (\n <div className=\"oui-flex oui-flex-col oui-gap-0 oui-mt-5\">\n <WalletCard\n type={WalletType.EVM}\n address={walletEVM?.accounts[0].address ?? \"\"}\n isActive={namespace === ChainNamespace.evm}\n onActiveChange={() => {\n switchWallet(ChainNamespace.evm);\n }}\n isPrivy={true}\n isBoth={false}\n />\n {walletChainType === WalletChainTypeEnum.EVM_SOL && (\n <>\n <div className=\"oui-h-[1px] oui-bg-line oui-my-5 oui-w-full\" />\n <div className=\"oui-flex oui-flex-col oui-gap-2 oui-w-full\">\n <CreateSOLWallet />\n </div>\n </>\n )}\n </div>\n )}\n {renderWalletType === PrivyWalletRenderType.onlySOL && (\n <div className=\"oui-flex oui-flex-col oui-gap-0 oui-mt-5\">\n <WalletCard\n type={WalletType.SOL}\n address={walletSOL?.accounts[0].address ?? \"\"}\n isActive={namespace === ChainNamespace.solana}\n onActiveChange={() => {\n switchWallet(ChainNamespace.solana);\n }}\n isPrivy={true}\n isBoth={false}\n />\n {walletChainType === WalletChainTypeEnum.EVM_SOL && (\n <>\n <div className=\"oui-h-[1px] oui-bg-line oui-my-5 oui-w-full\" />\n <div className=\"oui-flex oui-flex-col oui-gap-2 oui-w-full\">\n <CreateEVMWallet />\n </div>\n </>\n )}\n </div>\n )}\n </div>\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Button, formatAddress, Text, useScreen } from \"@orderly.network/ui\";\nimport { useWalletConnector } from \"@orderly.network/hooks\";\nimport { usePrivyWallet } from \"../providers/privyWalletProvider\";\nimport { RenderPrivyTypeIcon } from \"./common\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AuthGuard } from \"@orderly.network/ui-connector\";\n\nexport function UserCenter(props: any) {\n const { accountState: state } = props;\n return (\n <RenderUserCenter state={state} disabledConnect={props.disabledConnect} />\n );\n}\n\nexport const MwebUserCenter = (props: any) => {\n const { state } = props;\n\n return (\n <RenderUserCenter state={state} disabledConnect={props.disabledConnect} />\n );\n};\n\nconst RenderUserCenter = (props: any) => {\n const { state } = props;\n const { t } = useTranslation();\n const { isMobile } = useScreen();\n const { connect, wallet } = useWalletConnector();\n const { linkedAccount } = usePrivyWallet();\n\n const disabled = state.validating || props.disabledConnect;\n\n // if (accountStatus.status <= ) {}\n if (state.status === AccountStatusEnum.EnableTradingWithoutConnected) {\n return (\n <Button\n size=\"md\"\n variant=\"gradient\"\n angle={45}\n data-testid=\"oui-testid-nav-bar-address-btn\"\n className=\"oui-flex oui-items-center oui-justify-center oui-gap-2\"\n >\n <Text.formatted rule=\"address\" className=\"oui-text-[rgba(0,0,0,.88)]\">\n {formatAddress(state.address!, [4, 4])}\n </Text.formatted>\n </Button>\n );\n }\n if (state.status <= AccountStatusEnum.NotConnected || disabled) {\n return (\n <Button\n data-testid=\"oui-testid-nav-bar-connectWallet-btn\"\n size=\"md\"\n variant={disabled ? undefined : \"gradient\"}\n angle={45}\n className=\"wallet-connect-button\"\n loading={state.validating}\n disabled={disabled}\n onClick={() => {\n connect()\n .then((r: any) => {\n console.log(\"*****\", r);\n })\n .catch((e: any) => console.error(e));\n }}\n >\n {t(\"connector.connectWallet\")}\n </Button>\n );\n }\n\n if (!wallet) {\n return;\n }\n if (isMobile) {\n return (\n <AuthGuard\n buttonProps={{\n size: \"sm\",\n }}\n >\n <div onClick={() => connect()}>\n <Button\n size=\"sm\"\n variant=\"gradient\"\n angle={45}\n data-testid=\"oui-testid-nav-bar-address-btn\"\n className=\"oui-flex oui-items-center oui-justify-center oui-gap-2\"\n >\n {linkedAccount && (\n <RenderPrivyTypeIcon\n type={linkedAccount.type}\n size={18}\n black={true}\n />\n )}\n <Text.formatted\n rule=\"address\"\n className=\"oui-text-[rgba(0,0,0,.88)]\"\n >\n {formatAddress(wallet.accounts[0].address)}\n </Text.formatted>\n </Button>\n </div>\n </AuthGuard>\n );\n }\n return (\n <div onClick={() => connect()}>\n <Button\n size=\"md\"\n variant=\"gradient\"\n angle={45}\n data-testid=\"oui-testid-nav-bar-address-btn\"\n className=\"oui-flex oui-items-center oui-justify-center oui-gap-2\"\n >\n {linkedAccount && (\n <RenderPrivyTypeIcon\n type={linkedAccount.type}\n size={18}\n black={true}\n />\n )}\n <Text.formatted rule=\"address\" className=\"oui-text-[rgba(0,0,0,.88)]\">\n {formatAddress(wallet.accounts[0].address)}\n </Text.formatted>\n </Button>\n </div>\n );\n};\n","import { UserCenter } from \"./components/userCenter\";\n\nimport { installExtension } from \"@orderly.network/ui\";\nimport { ExtensionPositionEnum } from \"@orderly.network/ui\";\nimport { MwebUserCenter } from \"./components/userCenter\";\nimport React from \"react\";\n\ninstallExtension({\n name: \"account-menu-privy\",\n scope: [\"*\"],\n positions: [ExtensionPositionEnum.AccountMenu],\n})((props: any) => {\n return <UserCenter {...props} />;\n});\n\ninstallExtension({\n name: \"mobile-account-menu-privy\",\n scope: [\"*\"],\n positions: [ExtensionPositionEnum.MobileAccountMenu],\n})((props: any) => {\n return <MwebUserCenter {...props} />;\n});\n","import { PrivyClientConfig, PrivyProvider } from \"@privy-io/react-auth\";\nimport React, { PropsWithChildren, useMemo, useState } from \"react\";\nimport { Chain } from \"viem/chains\";\nimport { InitPrivy } from \"../types\";\n\ninterface IProps extends PropsWithChildren {\n privyConfig?: InitPrivy;\n initChains: Chain[];\n}\n\nexport function InitPrivyProvider({\n privyConfig,\n initChains,\n children,\n}: IProps) {\n if (!privyConfig) {\n return children;\n }\n const config = useMemo((): PrivyClientConfig => {\n // const chains = initChains.filter((chain) => !SolanaChains.has(chain.id) )\n const chains = initChains;\n return {\n loginMethods: privyConfig.config?.loginMethods || [\"email\", \"google\", \"twitter\"],\n appearance: {\n ...privyConfig.config?.appearance,\n walletChainType: \"ethereum-and-solana\",\n },\n\n embeddedWallets: {\n ethereum: {\n createOnLogin: \"all-users\",\n },\n solana: {\n createOnLogin: \"all-users\",\n },\n },\n\n defaultChain: chains[0],\n supportedChains: chains,\n };\n }, [initChains, privyConfig]);\n // const privyConfig = useMemo(():PrivyClientConfig => (\n // ), [props.initChains])\n // console.log('-- privyconfig', privyConfig);\n // return children;\n if (!initChains.length) {\n console.warn(\"initChains is empty\");\n return;\n }\n return (\n <PrivyProvider appId={privyConfig.appid} config={config}>\n {children}\n </PrivyProvider>\n );\n}\n","import React, { PropsWithChildren, useEffect, useMemo, useState } from \"react\";\nimport {\n Adapter,\n WalletAdapterNetwork,\n WalletError,\n WalletNotReadyError,\n} from \"@solana/wallet-adapter-base\";\nimport { PhantomWalletAdapter } from \"@solana/wallet-adapter-wallets\";\nimport { clusterApiUrl } from \"@solana/web3.js\";\nimport { WalletProvider } from \"@solana/wallet-adapter-react\";\nimport { ConnectionProvider } from \"@solana/wallet-adapter-react\";\nimport { InitSolana } from \"../types\";\nimport { useWalletConnectorPrivy } from \"../provider\";\n\ninterface IProps extends PropsWithChildren<InitSolana> {}\n\nexport function InitSolanaProvider({\n mainnetRpc,\n devnetRpc,\n wallets: walletsProp,\n onError,\n children,\n}: IProps) {\n const { network, setSolanaInfo, connectorWalletType } =\n useWalletConnectorPrivy();\n if (connectorWalletType.disableSolana) {\n return children;\n }\n\n const wallets = useMemo(() => {\n return walletsProp ?? [new PhantomWalletAdapter()];\n }, [walletsProp]);\n\n useEffect(() => {\n let rpcUrl = null;\n if (network === \"mainnet\") {\n rpcUrl = mainnetRpc ?? null;\n } else {\n rpcUrl = devnetRpc ?? null;\n }\n if (rpcUrl) {\n setSolanaInfo({\n rpcUrl: rpcUrl,\n network:\n network === \"mainnet\"\n ? WalletAdapterNetwork.Mainnet\n : WalletAdapterNetwork.Devnet,\n });\n }\n }, [network, mainnetRpc, devnetRpc, setSolanaInfo]);\n return (\n <WalletProvider wallets={wallets} onError={onError}>\n {children}\n </WalletProvider>\n );\n}\n","import React, {\n PropsWithChildren,\n ReactNode,\n useEffect,\n useState,\n} from \"react\";\nimport {\n createConfig,\n createStorage,\n http,\n injected,\n WagmiProvider,\n} from \"wagmi\";\nimport { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { arbitrum, Chain, mainnet, okc, sepolia } from \"viem/chains\";\nimport { InitWagmi } from \"../types\";\nimport { useWalletConnectorPrivy } from \"../provider\";\ninterface InitWagmiProps extends PropsWithChildren {\n initialState?: any;\n initChains: Chain[];\n wagmiConfig: InitWagmi;\n}\n\nexport function InitWagmiProvider({\n children,\n initialState,\n initChains,\n wagmiConfig,\n}: InitWagmiProps) {\n const { connectorWalletType } = useWalletConnectorPrivy();\n if (connectorWalletType.disableWagmi) {\n return children;\n }\n const [queryClient] = useState(() => new QueryClient());\n\n const [config, setConfig] = useState(() =>\n createConfig({\n chains:\n initChains && initChains.length\n ? (initChains as unknown as [Chain, ...Chain[]])\n : [mainnet],\n multiInjectedProviderDiscovery: true,\n storage: wagmiConfig.storage\n ? wagmiConfig.storage\n : createStorage({\n storage: localStorage,\n key: \"wagmi\",\n }),\n connectors: wagmiConfig.connectors\n ? wagmiConfig.connectors\n : [injected()],\n transports: Object.fromEntries(\n initChains.map((chain) => [chain.id, http()])\n ),\n })\n );\n\n return (\n <WagmiProvider config={config} initialState={initialState}>\n <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>\n </WagmiProvider>\n );\n}\n","export { WalletConnectorPrivyProvider } from \"./provider\";\nexport { UserCenter, MwebUserCenter } from './components/userCenter'\nexport * from \"./types\";\nimport * as viemExport from 'viem'\nexport const viem = viemExport;\nimport * as WagmiConnectorsExport from 'wagmi/connectors'\nexport const wagmiConnectors = WagmiConnectorsExport;\nimport * as WagmiExport from 'wagmi'\nexport const wagmi = WagmiExport;\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@orderly.network/wallet-connector-privy",
|
|
3
|
+
"version": "2.0.8-alpha.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "dist/index.mjs",
|
|
6
|
+
"module": "dist/index.mjs",
|
|
7
|
+
"keywords": [],
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"license": "ISC",
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@types/lodash": "^4.17.7",
|
|
14
|
+
"lodash": "^4.17.21",
|
|
15
|
+
"@solana/wallet-adapter-base": "0.9.23",
|
|
16
|
+
"@solana/wallet-adapter-react": "0.15.35",
|
|
17
|
+
"@solana/wallet-adapter-react-ui": "0.9.35",
|
|
18
|
+
"@solana/wallet-adapter-wallets": "0.19.32",
|
|
19
|
+
"@solana-mobile/wallet-adapter-mobile": "2.1.4",
|
|
20
|
+
"@solana/web3.js": "1.95.3",
|
|
21
|
+
"viem": "2.21.57",
|
|
22
|
+
"wagmi": "2.14.4",
|
|
23
|
+
"@tanstack/react-query": "5.62.8",
|
|
24
|
+
"@wagmi/connectors": "5.7.3",
|
|
25
|
+
"@privy-io/react-auth": "2.4.5",
|
|
26
|
+
"@orderly.network/core": "2.0.8-alpha.0",
|
|
27
|
+
"@orderly.network/types": "2.0.8-alpha.0",
|
|
28
|
+
"@orderly.network/i18n": "2.0.8-alpha.0",
|
|
29
|
+
"@orderly.network/hooks": "2.0.8-alpha.0",
|
|
30
|
+
"@orderly.network/ui-connector": "2.0.8-alpha.0",
|
|
31
|
+
"@orderly.network/ui": "2.0.8-alpha.0",
|
|
32
|
+
"@orderly.network/utils": "2.0.8-alpha.0"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@types/react": "^18.2.38",
|
|
36
|
+
"@types/react-dom": "^18.3.0",
|
|
37
|
+
"react": "^18.2.0",
|
|
38
|
+
"react-dom": "^18.2.0",
|
|
39
|
+
"tsup": "^7.1.0",
|
|
40
|
+
"tsconfig": "0.3.23-alpha.0"
|
|
41
|
+
},
|
|
42
|
+
"peerDependencies": {
|
|
43
|
+
"react": ">=18"
|
|
44
|
+
},
|
|
45
|
+
"publishConfig": {
|
|
46
|
+
"access": "public"
|
|
47
|
+
},
|
|
48
|
+
"scripts": {
|
|
49
|
+
"dev": "tsup --watch --tsconfig tsconfig.build.json",
|
|
50
|
+
"build": "tsup --tsconfig tsconfig.build.json",
|
|
51
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
52
|
+
}
|
|
53
|
+
}
|