@particle-network/solana-connectors
Version:
8 lines (7 loc) • 22.2 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/injected.ts", "../../src/utils.ts", "../../src/defaultConnectorFns.ts", "../../src/store.ts", "../../src/getConnection.ts", "../../src/version.ts"],
"sourcesContent": ["import {\n ChainNotConfiguredError,\n ProviderNotFoundError,\n SwitchChainError,\n UserRejectedRequestError,\n WalletAccountError,\n createConnector,\n type Connector,\n type Evaluate,\n type Prettify,\n type RpcError,\n type SolanaProvider,\n} from '@particle-network/connector-core';\nimport { PublicKey } from '@solana/web3.js';\nimport { isConnected } from './utils';\n\ntype Target = {\n icon?: string;\n id: string;\n name: string;\n provider: (window?: Window | undefined) => SolanaProvider | undefined;\n};\n\ntype TargetId = 'coinbaseWallet' | 'bitKeep' | 'trustWallet' | 'okxWallet' | 'phantom' | 'braveWallet';\n\ntype TargetMap = { [_ in TargetId]: Target };\n\nexport type InjectedParameters = {\n unstableShimAsyncInject?: boolean | number | undefined;\n target: TargetId | Target | (() => Target);\n};\n\ntype Window = {\n coinbaseSolana?: any | undefined;\n bitkeep?: any | undefined;\n phantom?: any | undefined;\n trustwallet?: any | undefined;\n okxwallet?: any | undefined;\n braveSolana?: any | undefined;\n};\n\nconst targetMap = {\n coinbaseWallet: {\n id: 'coinbaseWallet',\n name: 'Coinbase Wallet',\n provider(window) {\n if (typeof window !== 'undefined') {\n return window?.coinbaseSolana;\n }\n return undefined;\n },\n },\n bitKeep: {\n id: 'bitKeep',\n name: 'Bitget',\n provider(window) {\n if (typeof window !== 'undefined' && window.bitkeep?.solana?.isBitKeep) {\n return window.bitkeep?.solana;\n }\n },\n },\n phantom: {\n id: 'phantom',\n name: 'Phantom',\n provider(window) {\n if (typeof window !== 'undefined' && window.phantom?.solana?.isPhantom) {\n return window.phantom?.solana;\n }\n },\n },\n trustWallet: {\n id: 'trustWallet',\n name: 'Trust Wallet',\n provider(window) {\n if (typeof window !== 'undefined' && window.trustwallet?.solana?.isTrust) {\n return window.trustwallet?.solana;\n }\n },\n },\n okxWallet: {\n id: 'okxWallet',\n name: 'OKX Wallet',\n provider(window) {\n if (typeof window !== 'undefined' && window.okxwallet?.solana?.isOkxWallet) {\n return window.okxwallet?.solana;\n }\n },\n },\n braveWallet: {\n id: 'braveWallet',\n name: 'Brave Wallet',\n provider(window) {\n if (typeof window !== 'undefined' && window.braveSolana?.isBraveWallet) {\n return window.braveSolana;\n }\n },\n },\n} as const satisfies TargetMap;\n\ninjected.type = 'injected' as const;\nexport function injected(parameters: InjectedParameters) {\n const { unstableShimAsyncInject } = parameters;\n\n function getTarget(): Evaluate<Target & { id: string }> {\n const target = parameters.target;\n if (typeof target === 'function') {\n const result = target();\n if (result) return result;\n }\n\n if (typeof target === 'object') return target;\n\n if (typeof target === 'string' && targetMap[target as keyof typeof targetMap])\n return targetMap[target as keyof typeof targetMap];\n\n throw new Error('target not found.');\n }\n\n type Provider = SolanaProvider | undefined;\n type Properties = {\n publicKey?: PublicKey;\n onAccountChanged(publicKey: PublicKey): void;\n };\n type StorageItem = Prettify<\n {\n [_ in `${string}.injected.connected`]: true;\n } & {\n [_ in `${string}.injected.chainId`]: number;\n }\n >;\n\n let accountChanged: Properties['onAccountChanged'] | undefined;\n let disconnect: Connector['onDisconnect'] | undefined;\n\n return createConnector<Provider, Properties, StorageItem>((config) => ({\n get icon() {\n return getTarget().icon;\n },\n get id() {\n return `solana_${getTarget().id}`;\n },\n get name() {\n return getTarget().name;\n },\n type: injected.type,\n async connect({ chainId, isReconnecting } = {}) {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n let accounts: readonly string[] = [];\n if (isReconnecting) {\n const connected = await config.storage?.getItem(`${this.id}.injected.connected`);\n if (connected) {\n if (!isConnected(provider)) {\n await provider.connect();\n }\n if (!provider.publicKey) throw new WalletAccountError(this.id);\n }\n accounts = await this.getAccounts().catch(() => []);\n }\n\n try {\n if (!accounts?.length && !isReconnecting) {\n if (!isConnected(provider)) {\n await provider.connect();\n }\n\n if (!provider.publicKey) throw new WalletAccountError(this.id);\n accounts = [provider.publicKey.toBase58()];\n }\n\n if (!accountChanged) {\n accountChanged = this.onAccountChanged.bind(this);\n provider.on('accountChanged', accountChanged);\n }\n if (!disconnect) {\n disconnect = this.onDisconnect.bind(this);\n provider.on('disconnect', disconnect);\n }\n\n // Switch to chain if provided\n let currentChainId = await this.getChainId();\n if (chainId && currentChainId !== chainId) {\n const chain = await this.switchChain!({ chainId }).catch((error) => {\n if (error.code === UserRejectedRequestError.code) throw error;\n return { id: currentChainId };\n });\n currentChainId = chain?.id ?? currentChainId;\n }\n\n // Add connected shim\n await config.storage?.setItem(`${this.id}.injected.connected`, true);\n\n if (provider.publicKey) {\n this.publicKey = new PublicKey(provider.publicKey.toBytes());\n }\n\n return { accounts, chainId: currentChainId };\n } catch (err) {\n const error = err as RpcError;\n if (error.code === UserRejectedRequestError.code) throw new UserRejectedRequestError(error);\n throw error;\n }\n },\n async disconnect() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n\n try {\n await provider.disconnect();\n } catch {\n // ignore\n }\n\n await config.storage?.removeItem(`${this.id}.injected.connected`);\n this.publicKey = undefined;\n },\n async getAccounts() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n if (this.publicKey) {\n return [this.publicKey.toBase58()];\n }\n\n const connected = await config.storage?.getItem(`${this.id}.injected.connected`);\n if (connected) {\n if (!isConnected(provider)) {\n await provider.connect();\n }\n if (provider.publicKey) {\n this.publicKey = new PublicKey(provider.publicKey.toBytes());\n return [this.publicKey.toBase58()];\n }\n }\n\n return [];\n },\n async getChainId() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n const chainId = await config.storage?.getItem(`${this.id}.injected.chainId`);\n if (chainId && config.chains.find((chain) => chain.id === Number(chainId))) {\n return Number(chainId);\n }\n return config.chains[0].id;\n },\n async getProvider() {\n if (typeof window === 'undefined') return undefined;\n\n const target = getTarget();\n const provider: Provider = target.provider(window as Window);\n return provider;\n },\n async isAuthorized() {\n try {\n let provider = await this.getProvider();\n if (!provider) {\n if (unstableShimAsyncInject !== undefined && unstableShimAsyncInject !== false) {\n const handleProvider = async () => {\n const provider = await this.getProvider();\n return provider;\n };\n const timeout = typeof unstableShimAsyncInject === 'number' ? unstableShimAsyncInject : 1_000;\n provider = await new Promise<Provider>((resolve) => setTimeout(() => resolve(handleProvider()), timeout));\n if (!provider) {\n throw new ProviderNotFoundError();\n }\n } else {\n throw new ProviderNotFoundError();\n }\n }\n\n const connected = await config.storage?.getItem(`${this.id}.injected.connected`);\n return Boolean(connected);\n } catch {\n return false;\n }\n },\n async switchChain({ chainId }) {\n const chain = config.chains.find((chain) => chain.id === chainId);\n if (!chain) {\n throw new SwitchChainError(new ChainNotConfiguredError());\n }\n await config.storage?.setItem(`${this.id}.injected.chainId`, chainId);\n config.emitter.emit('change', { chainId });\n return chain;\n },\n async onAccountChanged(publicKey) {\n if (!publicKey) {\n this.publicKey = undefined;\n // Disconnect if there are no accounts\n this.onDisconnect();\n } else {\n this.publicKey = new PublicKey(publicKey.toBytes());\n config.emitter.emit('change', {\n accounts: [this.publicKey.toBase58()],\n });\n }\n },\n onChainChanged(chain) {\n const chainId = Number(chain);\n config.emitter.emit('change', { chainId });\n },\n async onDisconnect() {\n const provider = await this.getProvider();\n config.emitter.emit('disconnect');\n if (provider) {\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n }\n this.publicKey = undefined;\n await config.storage?.removeItem(`${this.id}.injected.connected`);\n },\n isInstalled(): boolean {\n if (typeof window === 'undefined') return false;\n\n const target = getTarget();\n const provider = target.provider(window as Window);\n return Boolean(provider);\n },\n }));\n}\n", "import type { SolanaProvider } from '@particle-network/connector-core';\n\nexport const isConnected = (provider: SolanaProvider) => {\n // some provider not defined `isConnected`, such as Trust Wallet.\n if (provider && typeof provider.isConnected === 'boolean') {\n return provider.isConnected;\n }\n\n return Boolean(provider?.publicKey);\n};\n", "import type { CreateConnectorFn } from '@particle-network/connector-core';\nimport { injected } from './injected';\n\nexport const defaultConnectorFns = (): CreateConnectorFn[] => {\n const connectors: CreateConnectorFn[] = [];\n\n connectors.push(injected({ target: 'phantom' }));\n connectors.push(injected({ target: 'coinbaseWallet' }));\n connectors.push(injected({ target: 'okxWallet' }));\n connectors.push(injected({ target: 'bitKeep' }));\n connectors.push(injected({ target: 'trustWallet' }));\n\n return connectors;\n};\n", "import {\n ChainNotConfiguredError,\n createEmitter,\n createWalletConnector,\n isSolanaChain,\n type ChainType,\n type ClientType,\n type Connector,\n type ConnectorEventMap,\n type CreateConnectorFn,\n type SolanaChain,\n type WalletConnectorsOption,\n} from '@particle-network/connector-core';\nimport type { Chain } from 'viem/chains';\nimport { createStore } from 'zustand/vanilla';\nimport { defaultConnectorFns as defaultSolanaConnectorFns } from './defaultConnectorFns';\nimport { getConnection } from './getConnection';\n\ntype ConnectorsOption = WalletConnectorsOption;\n\nexport type WalletParameters = {\n connectorFns?: CreateConnectorFn[];\n};\n\nsolanaWalletConnectors.type = 'solanaWallet' as const;\nexport function solanaWalletConnectors(parameters: WalletParameters = {}) {\n const { connectorFns } = parameters;\n const defaultConnectorFns = connectorFns ?? defaultSolanaConnectorFns();\n\n return createWalletConnector<ConnectorsOption>((options) => {\n const { ...rest } = options;\n\n const allChains = rest.chains.filter(isSolanaChain) as [Chain, ...Chain[]];\n if (allChains.length == 0) {\n throw new Error('Please add Solana chains in Connectkit options.');\n }\n const chains = createStore(() => allChains);\n\n function setup(connectorFn: CreateConnectorFn): Connector {\n // Set up emitter and add to connector so they are \"linked\" together.\n const emitter = createEmitter<ConnectorEventMap>();\n const connector = {\n ...connectorFn({ emitter, chains: chains.getState(), storage: rest.storage }),\n emitter,\n uid: emitter.uid,\n chainType: 'solana' as const,\n walletConnectorType: solanaWalletConnectors.type,\n };\n\n connector.setup?.();\n return connector;\n }\n\n const connectors = createStore(() => [...defaultConnectorFns].map(setup));\n\n function getClient<chainType extends ChainType = SolanaChain>(chainId: number): ClientType<chainType> {\n const chain = chains.getState().find((chain) => chain.id === chainId);\n if (!chain) {\n throw new ChainNotConfiguredError();\n }\n return getConnection(chain) as ClientType<chainType>;\n }\n\n return {\n get type() {\n return solanaWalletConnectors.type;\n },\n get chains() {\n return chains.getState();\n },\n get connectors() {\n return connectors.getState();\n },\n store: connectors,\n getClient,\n _internal: {\n connectors: {\n setup,\n },\n },\n };\n });\n}\n", "import { Connection } from '@solana/web3.js';\nimport type { Chain } from 'viem/chains';\n\nconst clients = new Map<number, Connection>();\n\nexport function getConnection(chain: Chain): Connection {\n {\n const client = clients.get(chain.id);\n if (client) return client;\n }\n\n const client = new Connection(chain.rpcUrls.default.http[0]!);\n\n clients.set(chain.id, client);\n\n return client;\n}\n", "export const version = '2.1.0';\n"],
"mappings": "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",
"names": ["window", "provider", "chain", "ChainNotConfiguredError", "client", "defaultConnectorFns", "chain", "ChainNotConfiguredError"]
}