@particle-network/connectkit
Version:
8 lines (7 loc) • 7.74 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/actions/disconnect.ts", "../../src/hooks/useDisconnect.ts", "../../src/hooks/useSmartAccount.ts", "../../src/hooks/useAddress.ts"],
"sourcesContent": ["import type {\n BaseErrorType,\n Connection,\n Connector,\n ConnectorNotConnectedErrorType,\n ConnectorNotFoundErrorType,\n ErrorType,\n} from '@particle-network/connector-core';\nimport type { Config } from '../createConfig';\n\nexport type DisconnectReturnType = void;\n\nexport type DisconnectErrorType =\n | ConnectorNotFoundErrorType\n | ConnectorNotConnectedErrorType\n // base\n | BaseErrorType\n | ErrorType;\n\nexport type DisconnectParameters = {\n connector?: Connector;\n};\n\nexport async function disconnect(config: Config, parameters: DisconnectParameters = {}): Promise<DisconnectReturnType> {\n let connectors: Connector[] | undefined;\n if (parameters.connector) {\n connectors = [parameters.connector];\n } else {\n const connections = [...config.state.connections.values()];\n connectors = connections.map((connection) => connection.connector);\n }\n\n const connections = config.state.connections;\n\n if (connectors && connectors.length) {\n for (const connector of connectors) {\n await connector.disconnect();\n connector.emitter.off('change', config._internal.events.change);\n connector.emitter.off('disconnect', config._internal.events.disconnect);\n connector.emitter.on('connect', config._internal.events.connect);\n\n connections.delete(connector.uid);\n }\n }\n\n config.setState((x) => {\n // if no connections exist, move to disconnected state\n if (connections.size === 0)\n return {\n ...x,\n connections: new Map(),\n current: null,\n status: 'disconnected',\n };\n\n // switch over to another connection\n const nextConnection = connections.values().next().value as Connection;\n return {\n ...x,\n connections: new Map(connections),\n current: nextConnection.connector.uid,\n };\n });\n\n // Set recent connector if exists\n {\n const current = config.state.current;\n if (!current) return;\n const connector = config.state.connections.get(current)?.connector;\n if (!connector) return;\n await config.storage?.setItem('recentConnectorId', connector.id);\n }\n}\n", "import { useCallback } from 'react';\nimport { disconnect, type DisconnectParameters } from '../actions/disconnect';\nimport { useContext } from '../context';\nimport { useMutation, type MutationOptions } from './useMutation';\n\ntype UseDisconnectParameters = MutationOptions<void, DisconnectParameters | void>;\n\nexport function useDisconnect(parameters?: UseDisconnectParameters) {\n const { config } = useContext();\n\n const mutationFn = useCallback(async (parameters?: DisconnectParameters | void) => {\n await disconnect(config, parameters ?? undefined);\n }, []);\n\n const { status, data, error, mutate, mutateAsync } = useMutation(mutationFn, parameters);\n\n return {\n status,\n data,\n error,\n disconnect: mutate,\n disconnectAsync: mutateAsync,\n };\n}\n", "import { useAAPlugin } from './useAAPlugin';\n\nexport const useSmartAccount = () => {\n const smartAccount = useAAPlugin((state) => state.smartAccount);\n return smartAccount;\n};\n", "import { useEffect, useState } from 'react';\nimport { checksumAddress, type Address } from 'viem';\nimport { useAccount } from './useAccount';\nimport { useDisconnect } from './useDisconnect';\nimport { useModalError } from './useModalError';\nimport { useSmartAccount } from './useSmartAccount';\n\nexport const useAddress = (): string | undefined => {\n const { address: eoaAddress, chain } = useAccount();\n const smartAccount = useSmartAccount();\n const { disconnect } = useDisconnect();\n const { showError } = useModalError();\n\n const [address, setAddress] = useState<string>();\n\n useEffect(() => {\n if (smartAccount && eoaAddress && eoaAddress.startsWith('0x')) {\n setAddress(undefined);\n if (chain) {\n smartAccount\n .getAddress()\n .then((result) => {\n if (smartAccount) {\n if (result) {\n setAddress(checksumAddress(result as Address));\n } else {\n setAddress(undefined);\n }\n } else {\n if (eoaAddress === '0x0000000000000000000000000000000000000000') {\n setAddress(undefined);\n } else {\n setAddress(eoaAddress);\n }\n }\n })\n .catch((error) => {\n console.log('get smart account error', error);\n disconnect();\n setTimeout(() => showError(error.message), 10);\n });\n } else {\n setAddress(undefined);\n console.log('show chain error, must switch chain before get AA.');\n }\n } else {\n if (eoaAddress === '0x0000000000000000000000000000000000000000') {\n setAddress(undefined);\n } else {\n setAddress(eoaAddress);\n }\n }\n }, [eoaAddress, smartAccount, disconnect, chain]);\n\n return address;\n};\n"],
"mappings": "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",
"names": ["connections", "parameters", "disconnect"]
}